Catalyst Dev — Change Log
Version 12.27.0
Jul 08, 2026
Recovery Loop Elimination & Escalation Fixes
This release closes five compounding loops that caused the recovery pass to silently discard verdicts, re-triage tickets indefinitely, and emit no-progress escalations forever. Recovery-pass sessions now persist a single verdict (fixed, leave-alone, or escalate) to the event log, ledger, and Linear in every case — and exhausted intents surface loudly as needs-human with a rendered brief instead of latching silently. Infinite escalation loops are capped and go terminal, triage re-dispatches are bounded per ticket, and the boot-resume approval gate finally has a CLI (boot-resume-approve.mjs --list / <ticket>) so gated recovery passes can actually be unblocked.
PRs
- dev: CTL-1439 (P0a) — recovery-pass verdict persistence + surfacing (stop act-and-discard) (#2586) (af29551)
- dev: CTL-1440 (P0b) — attempts-exhausted → loud escalation, RC3 defer-storm decoupling, truthful skip reasons (#2593) (1ef0e57)
- dev: CTL-1443 (P1-loop-3) — operable boot-resume approval gate (approve CLI + 48h expiry into Needs-You + alert) (#2596) (a6aa271)
- dev: CTL-1441 (P1-loop-2) — terminate the triage re-dispatch loop (cap + mismatch surfacing + WORKER_DIR hardening) (#2588) (9dd5309)
- dev: CTL-1442 (P1-loop-1) — no-progress escalations go terminal after N asks (stop the every-10-min forever loop) (#2590) (001557c)