v1.19.0 — the proof-recovery pipeline goes automatic
Headline: the proof-recovery pipeline goes automatic — the queued-proof backlog now drains itself. A scheduled queue-dispatcher runs the governor-metered dispatcher every 15 minutes (it was previously only an operator-invoked mode), so re-routed and queued proofs flow into PRs that Gate A re-verifies and auto-merges; a close-superseded sweep retires each stranded direct PR once its goal lands, so the backlog shrinks instead of doubling; and docs/recovery.md (linked from a new README Recovery section) documents the whole submission/recovery machinery and the Gate A capacity backstop (ADR-058). Together with the earlier re-route tool and admission self-heal (v1.18.0 / v1.17.1), this closes the loop on "the ruv sledgehammer fix" (#1904) — stranded proofs recover into the metered queue with no manual PR surgery and no lost work.
Added
- Added
tools/repo/close_superseded.pyand a scheduledclose-supersededworkflow that closes a stranded directprove(...)PR once its goal is proved onmain(its queued re-route, or a peer, landed) — and never a PR whose goal is still open. This is the safe, incremental implementation of "close the stranded originals once their re-routes land" for the ruv-sledgehammer cleanup (#1904) and the capacity drain (#1909): as thequeue-dispatcherlands re-routed proofs, this sweep retires the superseded originals, so the backlog shrinks instead of doubling. Closing needs only the defaultGITHUB_TOKEN. Pure helpers are pytest-covered;--authorand--dry-runare supported. - Added
docs/recovery.mdand a Recovery section to the README documenting how the swarm submits proofs through the governor-metered queue, why a proof can get stranded (the direct-submission cutover + Gate A flood, #1904/#1909), and the self-healing recovery pipeline: the admission re-route offer,reroute_stranded.py(re-package without re-proving), the scheduledqueue-dispatcher, and theclose-supersededsweep — plus the operator quick-reference and the Gate A capacity backstop (ADR-058). - Added a scheduled
queue-dispatcherworkflow that drains the queued-proof backlog automatically. Theswarm/agent.sh --dispatch-queuedispatcher (SPEC-007-A) previously ran only when an operator invoked it by hand, soqueued/prove/*branches accumulated unbounded (the backlog in #1909). The workflow now runs it every 15 minutes (governor-metered viaUNSORRY_MAX_OPEN_PROVE_PRS/UNSORRY_MAX_GATE_A_IN_FLIGHT, ADR-058), re-packaging already-locally-verified queued branches into PRs that Gate A re-verifies from scratch. It authenticates with the adminREFRESH_TOKEN(a GITHUB_TOKEN-opened PR would not trigger Gate A) and degrades to a report-only notice when that secret is unset. Self-throttling: it dispatches only while in-flight Gate A work is below the cap and no-ops when full.