Skip to content

ci: per-PR cancel groups on 9 uncancelled workflows, one provable paths filter (Closes #10552) - #10557

Draft
gHashTag wants to merge 1 commit into
masterfrom
claude/strange-panini-064591
Draft

gHashTag wants to merge 1 commit into
masterfrom
claude/strange-panini-064591

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Closes #10552

What

  • Nine workflows that had no 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 on push cancel only on pull_request events, so a master push run is never cancelled.
  • Skipped, with reasons (also in the issue): auto-merge-ready-prs (cancel-in-progress: false is deliberate), pr-budget (mutates PR state, listens to converted_to_draft), t27b-native (already cancels per PR).
  • dupe-ratchet gets a pull_request paths filter: specs/**, tools/dupe_scan.py, tools/duplicate_bodies_baseline.txt, its own workflow. That is everything tools/dupe_scan.py reads. It is not a required check.
  • No required context (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_dispatch note); no gate reads them (grep over scripts/, tools/, cli/, specs/).

Filter proof

  • Touches a listed path: this PR changes .github/workflows/dupe-ratchet.yml, so dupe-ratchet must start here.
  • Touches none: a draft PR stacked on this branch changes only a docs file; dupe-ratchet must not start there.

🤖 Generated with Claude Code

…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>
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-18 17:53:04 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 47
PRs with All Checks Green 3
READY 0
FAILING 47
PENDING 0
NO CHECKS YET 0

These columns do not partition: 0 + 47 + 0 + 0 = 47, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=fad12492937a != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

This was referenced Oct 18, 2026
This was referenced Oct 18, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci: cut Actions runs per PR push -- per-PR cancel groups on the 9 uncancelled workflows, one provable paths filter (measured 2026-10-18)

1 participant