§1 — Why

Dispatch has two admission gates and neither currently tells the truth (fleet review §4/§5). The budget gate has never held a wave in 259 runs because codex — the backend doing nearly all the work — publishes no headroom on its stream, and its working off-stream probe is disabled by an unset flag. The competence gate divides estimated hours by a speed factor measured in the wrong units, judges every node by its whole plan's estimate, reads a cache frozen since the fleet's second day, and reports its refusals as configuration errors with the structured verdict discarded. Depends on run-measurement-truth: the calibration inputs must be true before the gate derived from them can be.

§2 — Competence gate ✓ landed 2026-08-17

Made the competence gate truthful (commit c7a372e): speed defined once as neutral estimated hours per actual worker-hour, node-level estimates with provenance labels, a ledger-keyed cache lifecycle with reckon capabilities --rebuild off the dispatch path, and refusals as documented exit 5 carrying the structured verdict with dry-run parity. Threshold equals its named horizon under both calibration directions; 152 focused tests green, 5 added. Full record: §2 landed.

§3 — Budget gate ✓ landed 2026-08-17

Made the budget gate honest (commit d074d3f): known headroom now requires a numeric utilisation so an empty rate-limit mapping cannot displace a real reading, the rate-limit type and period are retained so a monthly figure cannot pin a five-hour decision, the codex probe works under host opt-in with one probe per wave reused by 3 dispatch checks, CLI resume resolves the same policy as observe (ceiling 83, reserve 17, exhausted spent), and ledger bookkeeping failures degrade to payload warnings. 219 focused tests green, 7 added. Full record: §3 landed.

§ Decisions

Should the codex account-limits probe be on by default once the once-per-wave shape exists?

On: the pre-flight finally guards the backend doing all the work, at one ≤20 s probe per wave. Off: zero dispatch latency, but the budget gate stays structurally blind for codex and the flag must be set per host.

Lead decision 2026-08-17: this workstation runs codex on a 20x weekly subscription and does not approach limits, so the shipped default stays zero-latency; the probe path ships working with the once-per-wave shape and is enabled per host via budget_check, documented loudly.

§ Followups

Repair both admission gates

§2 and §3 deliverables. Wait for run-measurement-truth to land first — the horizon must be re-derived from corrected worker-time and completion sources.

/reckon-ship gate-signal-repair

done - no followup. Both admission gates are now truthful. Competence (commit c7a372e): one speed definition in shared units, node estimates with provenance, ledger-keyed cache with rebuild off the dispatch path, refusals as documented exit 5 with dry-run parity; threshold equals its named horizon under both calibration directions, 152 tests green. Budget (commit d074d3f): numeric-only known headroom with retained window identity, codex probe working under host opt-in with one probe per wave reused by 3 dispatch checks, resume-side policy resolution, warning-only ledger bookkeeping failures; 219 tests green. Evidence: docs/evidence/archive/gate-signal-repair-landed.html.

gsr-competence landed - commit c7a372e; gate passed; measure: refusal threshold equals its named horizon under speed factors 0.5 and 2.0, ledger append invalidates cache, no synchronous rebuild on dispatch, refusal is documented exit 5 with dry-run parity; 152 focused tests green, 5 added; wall 448 s; evidence: gate-signal-repair-landed#competence. Section s2 closed.
gsr-budget landed - commit d074d3f; gate passed; measure: known headroom requires numeric utilisation (empty rate-limit mapping no longer displaces a real reading), rate-limit type/period retained, one preflight probe state reused by 3 dispatch checks (1 probe per wave), CLI resume resolves ceiling 83 / reserve 17 / exhausted spent, ledger bookkeeping failure degrades to payload warning; 219 focused tests green, 7 added; evidence: gate-signal-repair-landed#budget. Wall 4288 s is orchestrator latency across a false scope fence and is ledger-excluded as stalled.