Split from #7557 / pull #7794 on review, so the keeper lands alone.
The owner's 2026-11-01 comment on #7557: a roll should not pause queue work; the drain holds work up to 12 minutes because two writers overlap on SQLite. Measure the pause per release and include it in the keeper's cadence.
Build
Time the new forge's hold on its queue work at boot (around waitForPeer in src/main.ts) and store it on the keeper's release as write_pause_ms when the verify begins (a migration adds the column; pin it).
decideCut in src/keeper/cadence.ts waits max(30 min, 10 × the last release's write pause); the refusal names the pause when it is what holds the cut.
A write-pause column on the /releases keeper card and the terminal's keeper screen, writePauseMs in MCP release_keeper, and a "Write pause per release (ms)" panel on the Maintenance board.
Done when
test/release-keeper-write-pause.test.ts: a recorded 720 s pause makes the next cut wait 120 min and says so; an unmeasured pause leaves the 30 min floor.
A first cut of this exists in commit b6315b1e on branch torque/7557-release-keeper-cut-on-cadence-verify-und (reverted there before landing).
Split from #7557 / pull #7794 on review, so the keeper lands alone.
The owner's 2026-11-01 comment on #7557: a roll should not pause queue work; the drain holds work up to 12 minutes because two writers overlap on SQLite. Measure the pause per release and include it in the keeper's cadence.
Build
waitForPeerinsrc/main.ts) and store it on the keeper's release aswrite_pause_mswhen the verify begins (a migration adds the column; pin it).decideCutinsrc/keeper/cadence.tswaitsmax(30 min, 10 × the last release's write pause); the refusal names the pause when it is what holds the cut./releaseskeeper card and the terminal's keeper screen,writePauseMsin MCPrelease_keeper, and a "Write pause per release (ms)" panel on the Maintenance board.Done when
test/release-keeper-write-pause.test.ts: a recorded 720 s pause makes the next cut wait 120 min and says so; an unmeasured pause leaves the 30 min floor.A first cut of this exists in commit b6315b1e on branch
torque/7557-release-keeper-cut-on-cadence-verify-und(reverted there before landing).