Repository navigation
ci(cmux-next): web nits and CI-only changes skip the Mac tiers; a routing replay guards the router - #18310
Conversation
A one-line CSS change and its regenerated agent-pane bundle (#18296) ran the Release compile, the Debug scheme compile and swift test on minis. ci-web already checks the sources and proves the committed bundle matches them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
When a pull request changes only webviews sources, the webviews app, the agent-pane bundle or docs, and no Swift test reads those files, the router selects no Mac tier. ci-web checks the sources and the bundle's freshness, the bundle is a .copy resource, and gh-merge-green already passes skipped checks. A dev-build PR keeps its scheme compile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…ep theirs A workflow, CI script, router or gh-merge-green change needs no Mac tier, but scripts/ci/xcode-pins.txt (a *.txt) and plans/cmux-next/*.md (docs by name) feed Mac tiers and must keep them, which the web fast tier's early return missed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…uards the router Workflows, scripts/ci, the router, gh-merge-green and their tests route to no Mac tier, alone or with web files. A file a Mac tier reads keeps its tier whatever its name (the Xcode pins, the cmux-tui Rust action, daemon and tree inputs, generated-file inputs, files a Swift test reads), which also closes the web fast tier's gap where scripts/ci/xcode-pins.txt and plans/cmux-next/*.md matched the docs patterns. When the router changes, the checks job replays the last 30 merged PRs through the base router and the new one and fails on any unexplained tier change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-tier # Conflicts: # tests/test-execution.toml
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit e6de287. Configure here.
| for number in merged: | ||
| files = json.loads(subprocess.run( | ||
| ["gh", "api", "--paginate", f"repos/{repo}/pulls/{number}/files?per_page=100", "--jq", "[.[].filename]"], | ||
| check=True, capture_output=True, text=True).stdout.replace("][", ",")) |
There was a problem hiding this comment.
Replay pagination breaks on large PRs
Medium Severity
recent_prs asks gh api --paginate for filenames as one JSON array per page, then joins pages with a ][ replace. Paginated gh --jq output is newline-separated arrays, so json.loads throws on any merged PR with more than 100 files and the routing replay fails closed. The rest of this repo already fetches those names as one path per line.
Reviewed by Cursor Bugbot for commit e6de287. Configure here.


Summary
Two cheap classes in
cmux_next_route.pyselect no Mac tier. Only the Linux checks job runs here, along with ci-web or ci.yml's guards.Web nits. A one-line CSS nit (#18296) ran the Release compile, the Debug scheme compile and swift test on minis, and a runner refusal blocked it for an hour. These files are now covered on Linux:
webviews/sources;CmuxNextAgentPane/Resources/agent-pane/);ci-web type-checks, lints and tests them.
build-agent-pane-web.sh --checkproves the committed bundle matches the sources, and the bundle is a.copyresource, so the app takes it without a compile. gallery-pr diffs the touched entries.CI-only changes. These change no app code, so they now skip the Mac tiers. Before, a workflow or router change ran every tier:
.github/workflows/;scripts/ci/;scripts/gh-merge-green;They're checked on Linux instead:
scripts/ci/cmux_next_route_replay.py. It replays the last 30 merged PRs' changed files through the base router (HEAD^1 of the merge commit) and the PR's router. It fails on any tier the new router adds, or drops without naming a fast tier.gh-merge-green --revert(feat(gh-merge-green): --revert rolls back a merged PR in one command #18312, landed) undoes a bad change in one command.Files a Mac tier reads keep their tier, whatever their name. That covers:
.github/actions/setup-cmux-tui-rust/;This also fixes a gap in the first web-nit commit:
scripts/ci/xcode-pins.txtmatched the*.txtdocs pattern and would have skipped every tier.A
dev-buildPR still compiles its dogfood app.Verification
Each class went in red first:
python3 -m unittest tests.test_cmux_next_route tests.test_cmux_next_route_replay tests.test_cmux_next_checks_workflowpasses.actionlintpasses.Replay dry run (
--base origin/feat-cmux-next --limit 30): 29 merged PRs, 0 unexplained.Changelog
none
🤖 Generated with Claude Code
Note
Medium Risk
Changes which merge-gate Mac jobs run on PRs; mis-routing could under-test merges, though replay,
consumed(), and expanded unit tests mitigate that.Overview
Skips Mac CI tiers for two PR classes when every changed file qualifies and nothing a Mac job reads: web nits (webviews, checked agent-pane bundles, docs) and CI-only edits (workflows,
scripts/ci/, router,gh-merge-green, related tests). Linuxcmux-next checks, ci-web, and ci.yml guards cover those paths instead.dev-buildstill runs the scheme compile for dogfood.cmux_next_route.pyaddsweb_fast,ci_only, andconsumedso pins, tree inputs, generator inputs, and Swift test fixtures keep their tiers despite doc-like names (e.g.xcode-pins.txt).Routing replay (
cmux_next_route_replay.py): on PRs that change the router, the checks job replays the last 30 merged PRs through HEAD^1 vs the PR router and fails on tier adds, unexplained drops, or Swift target churn. Tier routing in the workflow also runs the new unit tests; docs andtest-execution.tomlare updated.Reviewed by Cursor Bugbot for commit e6de287. Bugbot is set up for automated code reviews on this repo. Configure here.