You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Release CI: one job, one reserved runner — a release PR must not fan out into 20 queued jobs #4433
OPERATOR, verbatim (2026-09-25, cop session): "the release has 11 jobs??? wtf, merge into one"
Measured on 0.69.5 (#4318, run 36148145139): the release PR's CI fanned out into 20 jobs, and at 14:46Z 11 of them were still queued behind other PRs' jobs on the shared clean-room pool. A release waits on the slowest queue position among 20.
Want: when the head is a release/rc car, CI runs as ONE job on a runner reserved for releases (label release, never taken by non-release jobs). That job runs the same checks sequentially, gate + workspace-test included, and reports the required contexts (ci / gate, workspace-test).
done_when:
A release-car PR shows 1 job, which starts in ≤60 s while the pool is saturated.
The same checks are executed: the release job runs every step the fan-out runs, with Σ steps equal and a case table in the PR.
A non-release PR is unchanged.
The mutation proof: remove a step from the release job → the parity check goes RED.
kind: code
Folded sub-tickets (TRIAGE-100, 2026-10-14)
These open sub-tickets were folded here as checklist rows and closed as not planned so the open count stays at or under 100. Reopen one when its work resumes; an open PR for it reopens it.
Re-scope (cop, relaying the operator's ruling of 2026-09-25 16:58 Madrid, verbatim):
CI = 5 fat jobs (x86 main, gx10, yoga, mac-refusal, determinism). Each runs all parts to completion on the biggest runner in its class, nextest full-core, sccache warm. Same test set as today (Σ executed unchanged).
No RC CI run. rc.N = tag on a queue-green main sha, cut within 5 min of green. Hardware jobs + clean-room + accuracy receipts run in parallel on the rc tag and gate PROMOTION, not the rc. Promotion failure → rc.N+1.
done_when now covers items 1 and 3: 20 → 5 jobs, with Σ executed equal to today's (case table); the rc tag is cut on a queue-green main sha within 5 min; promotion is gated by receipts on the tag. #4318 finishes as-is.
Item 3 of the operator's 'make today's rulings permanent' (done = merged + enforced): the #4433 ci.yml PR must also ship a Σ-executed invariant check. The check fails when the set of tests executed across the 5 jobs differs from today's set (by test id, not by count), and a mutation that drops one test turns it RED. [U] until merged.
Folded into #5306 as a checklist row (TRIAGE-100, 2026-10-14). Under the cop's ruling, tickets with a P0 label or the operator's own words that are sub-rows of an existing master are folded, with the operator's text quoted on the master exactly as written. Priority and owner carry over on the row.
Owner aprender-78: if you object, say so here or in the inbox and this ticket is reopened. Work on it continues as before; a PR for it reopens it.
Activity
ci(y2): apply the 3-shard preload only when SHARDS=3 (Refs #4424, #4433)
noahgift commentedon Sep 25, 2026
Re-scope (cop, relaying the operator's ruling of 2026-09-25 16:58 Madrid, verbatim):
done_when now covers items 1 and 3: 20 → 5 jobs, with Σ executed equal to today's (case table); the rc tag is cut on a queue-green main sha within 5 min; promotion is gated by receipts on the tag. #4318 finishes as-is.
noahgift commentedon Sep 25, 2026
Item 3 of the operator's 'make today's rulings permanent' (done = merged + enforced): the #4433 ci.yml PR must also ship a Σ-executed invariant check. The check fails when the set of tests executed across the 5 jobs differs from today's set (by test id, not by count), and a mutation that drops one test turns it RED. [U] until merged.
ci(#4433): fat driver — per-section checkout depth, secrets, section …
ci(#4433): collapse 20 CI jobs into 5 fat jobs + 3 verdict jobs
test(ci): fat_driver self-test — 23-row case table (expressions, AnyS…
fix(ci): restore GATE-MUTANTS-RULE markers around the gate's mutants …
fix(ci): artifact download follows the blob redirect without Authoriz…
fix(ci): sov inputs evaluated in the caller's context; section clones…
docs(release): rc = tag on queue-green main sha; cop rulings register (…
fix(ci): vendored sovereign-ci carries its sccache mount as one decla…
roadmap: PMAT-4433 row (5 fat CI jobs + Σ-executed invariant)
60 remaining items
noahgift commentedon Oct 14, 2026
Folded into #5306 as a checklist row (TRIAGE-100, 2026-10-14). Under the cop's ruling, tickets with a P0 label or the operator's own words that are sub-rows of an existing master are folded, with the operator's text quoted on the master exactly as written. Priority and owner carry over on the row.
Owner aprender-78: if you object, say so here or in the inbox and this ticket is reopened. Work on it continues as before; a PR for it reopens it.
Agent: aprender-clerk
ci(shards): list the lib universe on lib part 1; --release fragments …