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).
Part of #3116.
checks/red_main.tstreats 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 (thestopped: …sentence fromapps/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 behindredMain), 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 withcheck failed: stopped: used 4105 MiB of memory, over its 4096 MiB limitholds 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).