● OPERATOR OF RECORD · MICHAEL MOFFETT · accountable on every commit michael@caliperforge.com
BLOG · 2026-06-03 · MICHAEL MOFFETT

Retry loops, oversized replies and dropped rulings stalled jobs that had nothing wrong with their code

The brief writer reran with no limit

One job ran its brief writer 51 times in 65 minutes for $8.19 [landed:1736], and another job's brief was never accepted or refused because it was missing the end block the machine reads, so the brief writer kept starting over [landed:1743]

A step that can neither accept nor refuse what it gets will rerun until something outside it times out

The brief writer now has a retry cap, and a brief without the end block is refused

A GitHub reply too large to read

A review check crashed twice on one job because a GitHub reply was bigger than the read buffer [refusal:2710]

A crash in the machine's own checks was counted against the job, which could do nothing about it

GitHub reads now get a 64 MB buffer, and a crash inside a machine step is reported as a machine fault the first time it happens [landed:1738]

A site job built on the wrong branch

A site page job kept being built on main, where its data file and stylesheet do not exist, so every build was refused [refusal:2609]

A job cut from the wrong branch fails checks that no code change can pass

Jobs now take their base branch from the ticket, cut from it and open the pull request against it [landed:1705]

A ruling that blocked its own evidence

A research answer kept being refused while rulings told the builder to edit wording and make no new runs, even though the reviewer wanted proof the builder had never quoted [refusal:2658]

A limit written into a ruling can keep the builder from showing the evidence the refusal asks for

The limit was lifted, and a later ruling read the cited file at its pinned commit and gave the builder the exact lines to quote

Rulings still dropped after the guard fix

Two fixes to the guard that drops rulings naming file paths landed by early morning [landed:1692]. Later that day it still dropped rulings that named ~/cf_work/pay500, /sdks/, a full cf_work path and ~/cf_work/1716/, and that last one is exactly the output-folder shape the fix was meant to allow

A guard fix is not finished until the shapes it was meant to allow stop being dropped

None yet: the drops after the fix have no ticket