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
scripts/agent-preflight.sh runs a set of cheap record gates BEFORE a push, from
a branch. Nothing holds main to those same gates. So a change that breaks one
lands green, and the red is then charged to whichever unrelated branch runs
preflight next.
ci.yml's own header already states the structural half (lines 17-33): every
expensive job carries a job-level group keyed on github.ref, which is the
constant refs/heads/main for every push, so consecutive pushes cancel each
other. Measured there over 40 consecutive main runs at 0eb049f7: 26 cancelled,
12 failure, 1 success.
.agents/specs/gate-on-main.md — an analysis, not a row. It answers what gates main today job by job, what the baseline lane's three mechanisms actually
protect, which preflight gates are cheap and deterministic enough to qualify, what
a per-push record job would cost (≈ 4 min/run, ≈ 3.1 job-hours/day), and the case
AGAINST the change.
It deliberately opens no new row. The diagnosis is already carried by main-verifiability.md and ci.yml's header; what is new is one design option.
The recommendation, staged cheapest first
Use workflow_dispatch for two weeks. It costs nothing and has been used once
ever.
If that does not close the gap, add record-gates-main: if: push, group
keyed on github.sha, cancel-in-progress: false, sharing one script with agent-record.
Revisit required status checks once there is completion data.
Measured to catch 3 of the 5 historical instances at 1.6% of the cost #274
rejected. The other two are the Windows lane and need a different answer.
Caveat carried from the verification pass
Four numbers are marked unverified in the document (a suite total and three local
checker timings) because the box was at load ~120 and a re-timing would not have
been comparable. 26 of the 31 issue numbers the analysis cites, including #274
and #584, return 404 to an unauthenticated reader, so several of its citations
cannot be followed by anyone outside the repo.
Row:
GATE-CI-CONCURRENCYWhat
scripts/agent-preflight.shruns a set of cheap record gates BEFORE a push, froma branch. Nothing holds
mainto those same gates. So a change that breaks onelands green, and the red is then charged to whichever unrelated branch runs
preflight next.
ci.yml's own header already states the structural half (lines 17-33): everyexpensive job carries a job-level group keyed on
github.ref, which is theconstant
refs/heads/mainfor every push, so consecutive pushes cancel eachother. Measured there over 40 consecutive main runs at
0eb049f7: 26 cancelled,12 failure, 1 success.
The instances
VT_DFLASH_BOUNDS_DEVICElanded undocumented;check-env-docred onan unrelated branch.
VT_QWEN35_STAGE_RESERVE_BYTES, same gate, same shape, one commitlater. This one landed with no pull request at all.
glm5_next_weights.cppshadowedv;windows-msvcis PR-only withno main baseline, so it landed green and reddened every subsequent PR.
ENG-PREFLIGHT-COMPILESbecame runnable without re-pinningRUNNABLE_BASELINE;test_check_gate_commandsred on an unrelated branch.api_serverSTATUS_STACK_BUFFER_OVERRUNcrash, hidden behind windows-msvc is RED on every PR: glm5_next_weights.cpp shadows 'v' and /WX makes it an error #2404'scompile break until it was fixed.
tests/tools/test_oracle_pin.py'stest_metadata_and_runtime_strings_differ_on_the_pinis red onmainat471dbeefd, proven by running it on an unmodified base. Tracked separately asmain is red: an ORACLE-VLLM sync made the distribution and oracle versions equal, which test_oracle_pin pins as impossible #2931. It was charged first to an unrelated placement-gate branch.
What is written down
.agents/specs/gate-on-main.md— an analysis, not a row. It answers what gatesmaintoday job by job, what the baseline lane's three mechanisms actuallyprotect, which preflight gates are cheap and deterministic enough to qualify, what
a per-push record job would cost (≈ 4 min/run, ≈ 3.1 job-hours/day), and the case
AGAINST the change.
It deliberately opens no new row. The diagnosis is already carried by
main-verifiability.mdandci.yml's header; what is new is one design option.The recommendation, staged cheapest first
workflow_dispatchfor two weeks. It costs nothing and has been used onceever.
record-gates-main:if: push, groupkeyed on
github.sha,cancel-in-progress: false, sharing one script withagent-record.Measured to catch 3 of the 5 historical instances at 1.6% of the cost #274
rejected. The other two are the Windows lane and need a different answer.
Caveat carried from the verification pass
Four numbers are marked unverified in the document (a suite total and three local
checker timings) because the box was at load ~120 and a re-timing would not have
been comparable. 26 of the 31 issue numbers the analysis cites, including #274
and #584, return 404 to an unauthenticated reader, so several of its citations
cannot be followed by anyone outside the repo.