Repository navigation
Description
Problem
PR #963 (commit ce6c4f00e2, merged 2026-10-30T08:24:07Z as 198b34765d, "cancel-in-progress everywhere") flipped cancel-in-progress: false → true in seven workflows that also set queue: max in the same concurrency block:
.github/workflows/docs-update.yml.github/workflows/jules-daily-upstream-sync.yml.github/workflows/main-broken.yml.github/workflows/models-snapshot.yml.github/workflows/opencode.yml.github/workflows/review.yml.github/workflows/stats.yml
GitHub Actions rejects that combination: queue: max is only valid when cancel-in-progress is false (the run cannot both cancel the in-progress run and queue behind it). Every run of these seven workflows since the merge fails at startup with zero jobs — no step ever executes.
This is the exact failure already fixed in dezren39/nix: nix #1174 / PR #1175 flipped opencode.yml back to cancel-in-progress: false while retaining queue: max, per that repo's ci-policy.md. main-broken.yml's own header comment still documents the invariant this change broke: "cancel-in-progress stays false, and this workflow never triggers on issues/pull_request_target, so queue: max is valid here" — the code now says true.
Verified this run (main afbe903e5b)
- Diff of
ce6c4f00e2forstats.yml,review.yml,opencode.yml,main-broken.yml: the only change in each iscancel-in-progress: false → truebeside an unchangedqueue: max. The commit message states the intent ("every workflow touched here now sets cancel-in-progress: true, groups unchanged"). - Run history:
review.ymlpush runs 41026193869 (08:24:12Z, the ci: main-only workflow triggers, cancel-in-progress everywhere #963 merge push itself), 41028173095, 41028386720, 41028652184, 41029254767, 41029263067, 41031608536, 41032111192 — allcompleted/failure.stats.ymlpush runs show the same unbroken failure streak from 41026195101 (08:24:12Z) onward; the last pre-ci: main-only workflow triggers, cancel-in-progress everywhere #963 stats run (schedule, 2026-10-29T18:11:05Z, 40928384485) completed normally (skipped by its repo guard). gh run view 41031614929(main-broken.yml @afbe903e):conclusion: failure,jobs: []— a startup rejection, not a job failure. Seven workflows failed this way within 5 seconds of theafbe903epush (09:11:27–09:11:32Z): review, stats, docs-update, jules-daily-upstream-sync, main-broken, models-snapshot, opencode.- Grep on current main: 13 workflow files carry
queue: max; exactly the 7 above also carrycancel-in-progress: true. The other 6 keepfalseand are unaffected. - Impact beyond noise:
main-broken.ymlis the watcher that files main-broken issues for the main-tier workflows — it cannot run, so the remediation chain is blind while it is broken.review.yml/opencode.yml(issue_comment automation) andmodels-snapshot.yml/docs-update.yml(push automation) are likewise dead on every trigger.
Fix shape (per the nix #1175 precedent)
Flip cancel-in-progress back to false in exactly those 7 workflows, retaining queue: max and the existing groups. Do NOT remove queue: max — that reintroduces the silent-drop problem closed by #179 ("a third arrival silently drops the pending run"). No other workflow changes; the main-only trigger policy from #963 stays as Drew ordered it.
Acceptance criteria
- The 7 listed workflows set
cancel-in-progress: falsewithqueue: maxretained and concurrency groups unchanged; no other workflows are touched. - After merge, a push to main produces runs of these workflows that start (jobs appear) instead of 0-job startup failures — verify at least
stats/review/main-brokenon the merge push. - The stale comment in
main-broken.ymlonce again matches the code (it already states the correct invariant; no comment change needed if the flip lands).
Dedup: searched open and closed issues for "concurrency queue" and "cancel-in-progress" — #179/#156/#151/#74/#133 cover earlier queue:max additions and group sharing, none covers the #963 flip; no open issue tracks these startup failures.
Activity
dezren39 commentedon Oct 30, 2026
🤖 Agent note · filed
dezren39 commentedon Oct 30, 2026
🤖 Dispatcher hand-back — executor-saturated · openchamber-dispatcher run 2026-10-30 04:30 CDT
small_fix, low risk, no flags, priority 90 / priority/high, effort/xs, timebox 20m) ↔ this issue (fix(ci): seven workflows can never run since #963 — cancel-in-progress: true combined with queue: max fails every run at startup #970). Packet verified this run on direct Supabase reads: taskqueuedatt 0/2 (enqueued 2026-10-30T09:29:40Z by the creator run that filed fix(ci): seven workflows can never run since #963 — cancel-in-progress: true combined with queue: max fails every run at startup #970), progress empty, and stillqueuedatt 0/2, progress empty, at the pre-posting verification read; issue OPEN via freshghreads; labels clean (kind/bug, task/small-fix, status/needs-triage, source/creator, priority/high, queue/queued, area/ci, effort/xs — no held / user/owned / do-not-merge / do-not-auto-edit, no work/*); no competing PR (freshgh pr listsearches for 970 and for cancel-in-progress both returned none open); no prior executor-saturated hand-back on this issue (comment scan: 1 comment total — the creator filing note)./api/session-activityreads at run start (~04:31 CDT) and run end both show 19 live sessions, all idle, 0 free slots — 7 over cap. No session was launched for this task. The concurrent babysitter round (04:17–04:30 CDT) corroborates: 19 live, all idle, at its round-end read./api/quota/*; raw:dispatch-packets/quota-2026-10-30-0430.json.txt): meta OPEN — 5h 33% (reset 8:40 AM) / weekly 34% (reset Sun Nov 1 6:00 PM), plan "Muse Code High Usage". codex OPEN — active credential "OpenAI" ok, weekly 44% (reset Wed Nov 4 12:35 AM), credits 0. So pool headroom existed; saturation is slots only. CLOSED / WALLED (live-verified): opencode-go monthly 100% on BOTH credentials (Personal reset Mon Nov 2 9:02 PM; Lab reset Fri Nov 6 11:55 PM); cline-pass monthly 100% (reset Thu Nov 5 7:22 PM); openrouter monthly 100% (reset Sat Oct 31 7:00 PM). Failed reads named: claude ok:false "Rate limited. Retrying soon." (standing); openai endpoint "Unsupported provider" (not configured); opencode-go "Home" credential — no active Go subscription / unreadable response. deepseek ¥44.29 is a PAYG balance — never a routine route.queued, attempts 0, visible to the owning lane — there is no targeted claim/park verb for a dispatcher hand-back (the known binding gap, fix(script): stats.ts fetches have no deadline and buffer unbounded .json() bodies — PostHog, npm downloads, and the GitHub releases pager #1337/fix(changelog): read upstream changelog through a 1 MiB capped reader #1272), so no park verb was misfired at the wrong task. This comment is the hand-back record with reason classexecutor-saturated; the next dispatcher run with a free slot should dispatch it (Fast →opencode-route/speedif that route's pool is open at the time, else the open Meta/Codex-backed route — route id only, per Drew's 2026-10-29 route-only rule; this is mechanical, well-specified work: flipcancel-in-progressback to false in exactly the 7 named workflows, keepingqueue: maxand concurrency groups, per the nix Preserved branch: sweep/61-workflow-timeouts — decision needed (merge / cherry-pick / drop) #1174/PR Preserved branch: sweep/63-runscript-windows — decision needed (merge / cherry-pick / drop) #1175 precedent), or a lane may claim it if urgent.dezren39 commentedon Oct 30, 2026
🤖 Agent note · picked up
Re-verified at pickup on main 43b201a: all 7 workflows still carry cancel-in-progress: true + queue: max, and all 7 failed instantly (0 jobs) on the 43b201a push (runs 41038839737–41038849410, 10:10:53–10:10:57Z). Queue task 3901 is being cancelled in this run per the self-assignment protocol (dispatcher had already handed it back as executor-saturated).
fix(ci): restore cancel-in-progress: false on the seven queue: max wo…
dezren39 commentedon Oct 30, 2026
🤖 Agent note · done — fixed and merged
adaee6e542), laptop worktree~/git/fleet/970-queue-max-cancel, branchsweep/970-queue-max-cancel(deleted on merge).cancel-in-progress: true → falsein docs-update, jules-daily-upstream-sync, main-broken, models-snapshot, opencode, review, stats —queue: maxand groups retained, no other files.adaee6e542,opencodeandreviewruns now START: run 41041222038 has jobopencodeand concludedskippedby the fork's repo guard (the normal pre-ci: main-only workflow triggers, cancel-in-progress everywhere #963 behaviour), instead of the previous 0-job startupfailure. stats/docs-update/models-snapshot did not trigger on this push (their triggers are not push on these paths); main-broken fires on workflow_run completion of test/check, which are still QUEUED in the fleet runner backlog — its first post-fix run is still owed when those complete.cancel_repo_task: task 3901 is not queued or parked(the dispatcher hand-back at 04:30 CDT had already moved it out of queued/parked) — recorded here, not retried.dezren39 commentedon Oct 30, 2026
🤖 Agent note · closed — already done (queue task 3901)
small_fixfix(ci): seven workflows can never run since #963 — cancel-in-progress: true combined with queue: max fails every run at startup #970) claimed 2026-10-30T19:00:10Z, closed asalready_doneat 19:01:07Z.adaee6e542). No work performed by this lane — no branch, no PR, no files touched.1c7f4d41ad:queue: maxandcancel-in-progress: true→ 0 files (was 7).cancel-in-progress: false,queue: maxand groups retained.jobs=[]: stats run 41101927982 → jobs=1; review run 41111082054 → jobs=1; main-broken run 41077240734 → jobwatchpresent (concluded failure from the watcher reporting a real break, not a startup rejection).cancel_repo_taskfor 3901; this run found 3901queued, claimed it, and moved it todonecleanly, so that residue is resolved.status/*,queue/*, orwork/*present — nothing in-flight.