mirror of
https://github.com/Comfy-Org/github-workflows.git
synced 2026-11-05 00:17:37 +00:00
[PR #324] [MERGED] ci(bump-callers): exclude tests/ and README.md from the agents-md, coderabbit-config, groom and cursor-review fleets #323
Labels
No labels
cursor-review-catalog-drift
groom
groom
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/github-workflows#323
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/github-workflows/pull/324
Author: @mattmillerai
Created: 9/19/2026
Status: ✅ Merged
Merged: 9/20/2026
Merged by: @mattmillerai
Base:
main← Head:matt/be-15267-bump-exclude-tests-readme📝 Commits (3)
eac8756ci(bump-callers): exclude tests/ and README.md from the agents-md, coderabbit-config, groom and cursor-review fleets94bb741docs(bump-callers): fix the coderabbit-config branch name and de-list the excluding fleetsce3cb99ci(bump-callers): exclude catalog-drift.py and schema_drift.py from the cursor-review and coderabbit-config fleet triggers (#327)📊 Changes
6 files changed (+167 additions, -16 deletions)
View changed files
📝
.github/bump-callers/README.md(+27 -10)📝
.github/bump-callers/tests/test_paths_contract.sh(+48 -0)📝
.github/workflows/bump-agents-md-callers.yml(+18 -0)📝
.github/workflows/bump-coderabbit-config-callers.yml(+26 -0)📝
.github/workflows/bump-cursor-review-callers.yml(+30 -6)📝
.github/workflows/bump-groom-callers.yml(+18 -0)📄 Description
ELI-5
Some robots watch a folder and, whenever anything in it changes, they run
around to every project that uses that folder and file a "please update your
bookmark" pull request. Trouble is, they also did this when someone only
edited the folder's
tests/or itsREADME.md— files nobody's projectactually runs — so everyone got a pointless PR to review. Five of these
robots had already been taught to ignore those two things; this change
teaches the last four (agents-md, coderabbit-config, groom, cursor-review)
the same lesson, using the exact same spelling.
There's a second, subtler trap: if you tell the robot "ignore
tests/" inits trigger but forget to tell its staleness check the same thing, the
check keeps seeing the folder as "changed" and the robot freezes forever.
So every exclusion is mirrored into
WATCHED_PATHSPECS, and a contract test(
test_paths_contract.sh) fails the build if the two ever disagree.What changed
For
bump-agents-md-callers.yml,bump-coderabbit-config-callers.yml,bump-groom-callers.ymlandbump-cursor-review-callers.yml:'!<dir>/tests/**'and'!<dir>/README.md'to thepush:paths:filter, with a short comment modelled on the clean fleets.
WATCHED_PATHSPECSas:(exclude)<dir>/tests(no/**) and:(exclude)<dir>/README.md, carryingthe canonical two-line "MIRRORS the
paths:filter above …test_paths_contract.shfails the build otherwise" comment. The three flat fleets get a new block;
cursor-review's existing block (which already excluded
check-pr-size/*_test.go)gains the two new lines, and its inline note is widened so it no longer credits
only the
*_test.goexclusion.WATCHED_ASSETSis left as-is — it still drives the decommission probe andthe coverage assertion.
WATCHED_EXEC(added to these fleets by a prior PR)is untouched; no
WATCHED_EXECwas added here (that is a separate,out-of-scope change).
Docs (
.github/bump-callers/README.md): the fleet-table "Triggers on" rows forthe four fleets now say "(minus its
tests/andREADME.md, which no callerexecutes)"; the stale
WATCHED_PATHSPECS"Used by" list is replaced with "everyfleet whose
paths:filter carries a!exclusion"; and the parenthetical thatsingled out
pr-riskas the only excluding fleet is generalised (my change makesthree more fleets excluding fleets, so leaving it would be newly inaccurate).
Prerequisite / neighbour status (both already merged)
/**directory-exclusion skip) is merged on
main(#308). Without it thecursor-review hunk would fail at
test_paths_contract.shwith a misleading"
**in a SUBDIRECTORY" message, because.github/cursor-review/tests/has afixtures/subdirectory. Confirmed passing here.WATCHED_EXECchange to five fleets is merged (#302). Itedits the same preflight
env:blocks, so line numbers drifted from theticket's diff (written against
cf7b8d9); the newWATCHED_PATHSPECSblockswere woven in above the existing
WATCHED_EXEC, matching pr-risk's env ordering.Verification
test_paths_contract.sh→ 151 passed, 0 failed (higher than the ticket's107 because suites were added since; all four target fleets report
"WATCHED_PATHSPECS mirrors the
paths:filter, exclusions included", and each/**andREADME.mdexclusion is recognised as EQUIVALENT — the prerequisitefix at work).
test_preflight.sh→ 445 passed, 0 failed;test_bump_callers.sh→437 passed, 0 failed (both exactly as the ticket predicted).
check_workflow_pins.py, the org-repo-literal lint,and
check_agents_md.py(two pre-existing, unrelated warnings). All four YAMLsparse.
cf7b8d9(tests+READMEonly under
.github/groom/):git diff --quiet cf7b8d9^ cf7b8d9 -- .github/workflows/groom.yml .github/groom→ exit 1 (reads as changed → would freeze the fleet);':(exclude).github/groom/tests' ':(exclude).github/groom/README.md'appended → exit 0 (correctly reads as unchanged).reads
tests/orREADME.mdat run time — every hit is a test-file string, acode comment (
key-broker.mjs), or a docstring (catalog-drift.py, which isdeliberately absent from
WATCHED_EXEC).bump-*-callers.ymland.github/bump-callers/**are in no fleet'spaths:filter (only CI'stest-bump-callers.ymlruns).Residual
Nothing is left unfixed for this ticket's stated scope — all four fleets carry
the exclusions and mirrored pathspecs, docs are in sync, and the prerequisite
and neighbour both landed. Deliberately out of scope, per the ticket:
WATCHED_EXECfor the five fleets (a separate change, already merged as #302).ALLOW_EMPTY/ roster-description doc fixes the source spike found tomisdescribe non-empty rosters (
README.mdroster column; theALLOW_EMPTYcomments in
bump-groom-callers.ymlandbump-agents-md-callers.yml) — aseparate docs fix, untouched here.
bump-pr-size-callers.yml(already correct; not in scope).Raised in review and deferred to a tracked follow-up (not dropped):
scripts still inside the watched globs —
catalog-drift.pyandwire-bot-identity.py(cursor-review),schema_drift.py(coderabbit-config)and
key-broker.mjs(groom), each already documented as DELIBERATELY ABSENTfrom its fleet's
WATCHED_EXEC. Excluding individually-named scripts needs aper-file call this PR's scope does not make (
key-broker.mjsmay simply bedead code), so it is filed separately.
scripts/check-pr-size/*_test.goexclusion matchesdifferently on the two sides (git's default pathspec
*crosses/, Actions'does not). Unreachable today — that directory is a flat, single Go package —
and its pathspec lines are byte-identical to
bump-pr-size-callers.ymlbydesign, so aligning them is a pr-size-fleet change too. Left as-is, explained
on the thread.
Unexercised artifacts (named for honesty): the source Linear tickets and the
GitHub issue that motivated this work could not be opened from the sandbox;
their conclusions were verified instead through the merged prerequisite/neighbour
PRs (#302, #308) and the real-object proof above. The historical churn PR the
repro produced was referenced but not re-run (it is evidence of the bug, not an
artifact to exercise).
Review round
Follow-up commit
94bb741(comment/docs only — nopaths:, pathspec orbehavior change) addresses the two review findings that landed on text this PR
itself adds:
bump-coderabbit-config-callers.yml's new comment named the stable branchci/bump-coderabbit-config;bump-callers.shbuildsci/bump-${TAG}and thisfleet's
TAGiscoderabbit-config-validate, so it contradicted theconcurrency comment in the same file. Corrected, with the tag/directory
mismatch spelled out inline (this is the only fleet where they differ).
incomplete —
area-label,linear-ticketandpublic-repo-hygienecarry!exclusions and set
WATCHED_PATHSPECStoo — and its "since this change"wording would go stale on merge. Replaced with the generalized phrasing this
PR already adopted for the
WATCHED_PATHSPECSinput row.All four review threads answered and resolved.
Provenance
test_paths_contract.sh(151/0),test_preflight.sh(445/0),test_bump_callers.sh(437/0),check_workflow_pins.py, org-repo-literal lint,check_agents_md.py, YAML parse of all four workflows, and the real-objectgit diffstaleness proof againstcf7b8d9. Re-run unchanged after94bb741:test_paths_contract.sh(151/0),test_preflight.sh(445/0),test_bump_callers.sh(437/0),shellcheck -xover the bump-callersscripts and tests,
check_workflow_pins.py, the org-repo-literal lint andcheck_agents_md.py(same two pre-existing, unrelated warnings).WATCHED_PATHSPECSblocks around the already-mergedWATCHED_EXEC(linenumbers in the ticket's diff predate #302) and one honesty edit to a README
parenthetical that my change would otherwise have made inaccurate — which
review then found was still under-inclusive, corrected in
94bb741bydropping the fleet enumeration entirely.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.