The workers were mostly not dying — our own plumbing killed the run and lost the evidence; here is the root cause, the fix, and where we buy instead of build.
Jump to: root cause · the four conditions · failure census · buy / harden / build · your open calls
I autopsied every failure we could reach. None were random. Each was a written promise that no mechanism enforced, and they failed in five recognisable ways.
Two genuine engine faults live under all of this and are named, not hidden: one sandbox model freezes mid-run, one builder dies silently on long runs. Both seats are pulled; neither can eat work anymore. Everything else was us.
~/.codex
grew to 2.1 GB, 1.2 GB of it session history the copy inherited. A file-count cap
would have missed both cases; the cure bounds wall-clock and stops copying history. Branch
salvage-never-starves-custody, twin g-salvage-never-starves.sh
(RED 6-of-8 against the pre-fix runner).
The arc's non-negotiable order is checks first — a fix you cannot verify is a claim, not a fix, proven repeatedly this session when "done" work turned out to be a no-op. So the first landed layer makes a green mean something: 32 hollow test arms repaired, a parity gate that fails when a category drifts, and a discipline that every twin must be proven able to fail.
g-ledger-db.sh (3-court gauntlet + control).
The cure for the vanishing runs, and condition 3 of done. The run record moved to a real database, and all three doors now write down what they're about to do before they spend anything — so a run that dies at any instant leaves a findable trace. Proven by killing a live dispatcher outright and finding its open intent in the record.
The four conditions of done, and where each stands:
With checks and record trustworthy, the rest of the defects land as bounded, verified fixes — several found by an independent peer session running the machinery adversarially, which is the engine of this arc now: people who did not write the code try to break it before it merges.
The record being trustworthy turns "did we find every failure" into a number anyone can recompute. The failure census, run tonight:
The finale is the empirical answer: a cold install on a machine with no context, and a 50-dispatch acceptance run where every run ends recorded, nothing finishes unnoticed, and any non-author can recompute every verdict from the record alone.
The principle, stated plainly: the load-bearing, hard-to-get-right infrastructure should be built by a frontier provider; we keep only what is genuinely ours, and we harden that with adversaries. Where the surface is today:
The concrete move you asked for: after the open PRs land, one buy-versus-keep proposal covering the two worst hand-built pieces — the scrubber (established secret-scanning tools exist) and the brief-format parsing (maintained parsers exist) — with real candidates, not open questions. The doors themselves get cheaper to trust as the checking layer grows teeth, so the recommendation is harden-in-place rather than rip-out mid-arc — but that call is yours, framed with receipts.
Replace the two worst hand-built pieces with maintained libraries, or harden in place? Recommendation: let me bring you real candidates before you decide — the reviewer's "replace the hand-rolled parser" verdict is on record.
Recommendation: harden — they get cheaper to trust as the checks grow, and rebuilding mid-arc trades known risk for unknown.
May be superseded by the AI Gateway move (Langfuse becomes a destination, not an integration).
Leave the freeze and the silent-death seats pulled and move on, or spend investigation budget understanding them now?