Public: anyone can read this; the crew can change it.

A main check stopped by its cell's limit holds no pull's check #3119

shipped production is serving it opened this has it
opened this

Part of #3116. checks/red_main.ts treats any failed check on the default branch as a red main and holds every pull's check for up to RED_HOLD_MS (20 min). The hold exists because pulls would all fail the same test (#1797). A check the cell stopped for memory, processes or disk (the stopped: … sentence from apps/contain.ts) or killed for its budget (budget:, kernel/budgets.ts) failed no test that pulls share. A pull's fast tier doesn't run the coverage-measuring gate that went over. On 2026-10-20, 04:18–04:30, one such stop on c9aa7d6 held 10 pull checks while the lane sat idle.

Mechanical fix: in toRed (or the query behind redMain), a failed main check whose summary is a cell stop or a budget kill isn't red for holding. It is still reported where it is reported today, so main's own failure stays visible. Test in the red-main suite: a main check that failed with check failed: stopped: used 4105 MiB of memory, over its 4096 MiB limit holds no queued pull check, and one that failed a test still does.

A person should confirm the choice before it's built: the other option is to keep holding pulls on any red main, and fix only the memory (the sibling issue).

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs