Repository navigation
ci: per-PR cancel groups on 9 uncancelled workflows, one provable paths filter (Closes #10552) - #10557
Draft
gHashTag wants to merge 1 commit into
Draft
ci: per-PR cancel groups on 9 uncancelled workflows, one provable paths filter (Closes #10552)#10557gHashTag wants to merge 1 commit into
gHashTag wants to merge 1 commit into
Conversation
…aths filter on dupe-ratchet (Closes #10552) Measured 2026-10-18 17:03Z: a PR push starts a median of 24 runs and 326 runs were queued. Ten workflows had no concurrency block; nine now get <workflow>-<PR number or ref>. Where the workflow also runs on push it cancels only on pull_request events, so a master push run is never cancelled. Skipped: auto-merge-ready-prs (cancel-in-progress: false is deliberate), pr-budget (mutates PR state, listens to converted_to_draft) and t27b-native (already cancels per PR). dupe-ratchet gains a pull_request paths filter: specs/**, its script, its ledger and its own workflow, which is everything tools/dupe_scan.py reads (it walks specs/ for *.t27 and reads tools/duplicate_bodies_baseline.txt; its self-test builds a temp tree). No required check (validate, check-linked-issue, parse-ratchet, own-language) is touched. Foreign-line budget (diff net 0, 30 added / 30 deleted): the offset is the boilerplate copied into build-paper, catalog-count-gate and coq-kernel (branch-filter note) and into build-paper, coq-kernel and seal-staleness-warn (workflow_dispatch note). The rule they restate lives in scripts/ci/check_pr_branch_filters.py and `tri gates unmeasured`; no gate reads those comments. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This was referenced Oct 18, 2026
Merged
Contributor
This was referenced Oct 18, 2026
Merged
This was referenced Oct 18, 2026
Open
Merged
Merged
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #10552
What
concurrency:block get a per-PR group,<workflow>-${{ github.event.pull_request.number || github.ref }}: build-paper, catalog-count-gate, conformance-integrity-gate, coq-kernel, coq-proofs, gf-wide-conformance, gf16-conformance, pack-index-consistency-gate, seal-staleness-warn. Those that also run onpushcancel only onpull_requestevents, so a master push run is never cancelled.cancel-in-progress: falseis deliberate), pr-budget (mutates PR state, listens toconverted_to_draft), t27b-native (already cancels per PR).dupe-ratchetgets apull_requestpaths filter:specs/**,tools/dupe_scan.py,tools/duplicate_bodies_baseline.txt, its own workflow. That is everythingtools/dupe_scan.pyreads. It is not a required check.validate,check-linked-issue,parse-ratchet,own-language) is touched, renamed or filtered.Finding worth reading
The 12 workflows without a cancel group are not where the queue comes from (the 10 without any block all have
paths:filters already, and none was queued at 17:03Z). Almost all of the 326 queued runs belong to about 22 whole-tree gates that already cancel per PR and cannot be path-filtered without a lying gate. Table and baseline are in the issue.Foreign-line budget
Diff is 30 added / 30 deleted. The offset is boilerplate comments copied into several workflows (the branch-filter note and the
workflow_dispatchnote); no gate reads them (grepover scripts/, tools/, cli/, specs/).Filter proof
.github/workflows/dupe-ratchet.yml, sodupe-ratchetmust start here.dupe-ratchetmust not start there.🤖 Generated with Claude Code