mirror of
https://github.com/Comfy-Org/github-workflows.git
synced 2026-11-05 00:17:37 +00:00
[PR #355] [MERGED] fix(bump-callers): move cursor-approve and axis pins with cursor-review, and bump on their changes (BE-19438) #358
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#358
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/355
Author: @mattmillerai
Created: 10/7/2026
Status: ✅ Merged
Merged: 10/7/2026
Merged by: @mattmillerai
Base:
main← Head:matt/be-19438-bump-companions📝 Commits (2)
f5dc191fix(bump-callers): move cursor-approve and axis pins with cursor-review, and bump on their changes (BE-19438)715feddfix(bump-callers): anchor the family address on@, allowlist the companion fixtures, watch auto-approve.py (BE-19438)📊 Changes
6 files changed (+502 additions, -25 deletions)
View changed files
📝
.github/bump-callers/README.md(+25 -5)📝
.github/bump-callers/bump-callers.sh(+92 -17)📝
.github/bump-callers/tests/test_bump_callers.sh(+189 -0)📝
.github/bump-callers/tests/test_paths_contract.sh(+102 -3)📝
.github/lint/org-repo-allowlist.txt(+4 -0)📝
.github/workflows/bump-cursor-review-callers.yml(+90 -0)📄 Description
ELI-5
Some repos run cursor-review and cursor-approve (plus its "axis" reviewers) from one workflow file. Every pin in that file has to point at the same commit of this repo. The auto-bumper saw the extra workflows, decided they belonged to some other fleet, and moved only cursor-review's pin. It still moved every
workflows_ref:, so cursor-approve ended up running one version's workflow against another version's scripts. It also never opened a bump PR when only cursor-approve or the axes changed. This PR tells the bumper that the cursor-approve family belongs with cursor-review, so they all move together, and makes changes to them trigger a bump.What changed
.github/bump-callers/bump-callers.shCOMPANION_FILES: bare reusable filenames that ship as one family withWORKFLOW_FILE. Leaving it unset keeps every other fleet's behavior byte-identical. A malformed entry (a path, no.yml, a glob) is a hard error. The list is split withread -a, so a stray*.ymlcan't glob.uses:and everyworkflows_ref:moves, and thegithub-workflows main (<sha>)markers are refreshed on every family line.groom.yml), rule 1'sSHA_ADDRnames the whole family (/(cursor-review\.yml|cursor-approve\.yml|…)@, anchored on the@that ends the filename so a sibling such asaxis-design.yml-v2.yml, or a family name in a sibling line's comment URL, never matches). The companions still move and the sibling's pin and# main @note stay as they were. The pre-rewrite address gate and the post-rewrite stale-pin assertion read the same address, so both cover companions.workflows_ref:would still have that input moved. No caller does this today..github/workflows/bump-cursor-review-callers.ymlCOMPANION_FILES:cursor-approve.yml,cursor-axis-base.yml,axis-{correctness,conformance,business,design,completeness}.yml.paths:now watches those seven workflow files and.github/cursor-approve/**, minus.github/cursor-approve/tests/**and.github/cursor-approve/README.md, following the existing.github/cursor-reviewexclusions.WATCHED_ASSETS(the 7 files plus.github/cursor-approve),WATCHED_PATHSPECS(the same, plus the two:(exclude)s) andWATCHED_EXEC(the 7 workflows, the 4 scripts and the 8 prompts the approve half loads fromworkflows_ref, plus.github/cursor-review/auto-approve.py, which cursor-approve.yml runs)..github/bump-callers/README.md: the fleet table row and the "two reusables" section now describe companions and the remaining residuals (a sibling's ownworkflows_ref:, and a cosmetic stalegithub-workflows main (<sha>)marker on a moved family line in the sibling case)..github/lint/org-repo-allowlist.txt: enumerates the four new invented test-fixture names (secret-companions,-componly,-compsib,-compstale).Testing
Run locally against the current head (Linux, bash 5):
bash .github/bump-callers/tests/test_bump_callers.shbash .github/bump-callers/tests/test_paths_contract.shbash .github/bump-callers/tests/test_preflight.shpython3 -m unittest discover -s .github/workflow-pins/tests -p 'test_*.py'python3 .github/workflow-pins/check_workflow_pins.pyshellcheck -xon bump-callers.sh, preflight.sh and the three test scriptscheck-org-repo-literals.sh,check_agents_md.py --root .New cases:
workflows_ref, starting from the split state. All 5uses:and all 3workflows_refmove, all 5 markers are refreshed, the third-partyactions/checkout@<sha>is untouched, and there is no half-bump warning.COMPANION_FILES: still multi-reusable, as before. This shows the input is what makes the difference.groom.yml) beside the companions: the companions move, and groom's pin and# main @note are unchanged. So are a sibling namedaxis-design.yml-v2.ymland a sibling whose comment URL namescursor-review.yml(both checks fail without the@anchor).uses:the rewrite can't move (@${{ … }}) in the sibling case fails the repo with nothing committed.COMPANION_FILESvalues are rejected.cursor-approve.yml, each axis,cursor-approve/aggregate.pyand a prompt trigger the fleet.cursor-approve/tests/**andcursor-approve/README.mdalone don't. A new two-way check keepsCOMPANION_FILESin sync with thepaths:filter's reusable-workflow entries. The reverse direction (every.ya?mlreusable in the filter other thanWATCHEDis a companion) runs for every fleet, not only companion fleets.bump-callers.sh, 30 of the new bump assertions fail. Against the old entrypoint, 10 of the new contract assertions fail.Provenance
Authored by: agent-work loop
Verified:
shellcheck -xis clean on the bump-callers scripts and tests.check_workflow_pins.py, the workflow-pins unittest suite,check-org-repo-literals.shandcheck_agents_md.pyall pass.@-anchor assertions fail against the unanchored SHA_ADDR.Deviations:
workflows_ref:of a sibling that shares the file is still moved. This is documented as a residual, since no caller does it today.🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.