Repository navigation
ci(cmux-next): fail god-file checks only on a change's own growth - #18165
Conversation
A god file already over budget on feat-cmux-next (acpmux profiles.rs and requests.rs) failed every unrelated pull request. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
check-no-godfiles.sh takes --base REF. An entry over budget fails only when it is bigger than in REF (pushed past its budget, grown while over, or new); one this change did not grow is a note. REF is measured from an archive, and only when the head would fail. The cmux-next checks pass HEAD^1 on pull requests; the cmux-tui lint passes the commit's merge base with feat-cmux-next. Pushes still check every file. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
|
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 |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37567938071 at f43f800 failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37568316271 at 169c1da failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37568445230 at 3c11c5a failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37568512187 at e8aa5c1 failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37569422881 at 552e7cb failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37569270312 at f60b3d7 failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37569941713 at 46215de failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37569551101 at 5976099 failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37570246034 at e8a5696 failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
Summary
The 1000-line god-file limit stays. What changes is whose failure it is. On 2026-10-06, acpmux
profiles.rs(1107 lines) andrequests.rs(1004) landed over budget on feat-cmux-next, and then every unrelated pull request failedcmux-next checksuntil someone split them.scripts/cmux-next/check-no-godfiles.shnow takes--base REF:git archive, and only when the head would fail, so a passing PR pays nothing extra. A failing head roughly doubles the step's time (about 19 s to 38 s for the Rust half here).--base.Wiring:
cmux-next checks: pull requests pass--base HEAD^1(the merge commit's first parent), and the checkout fetches depth 2. Pushes keep checking every file, so base drift still shows on the push run and its attribution.cmux-tui.ymllint: the exact commit's merge base with feat-cmux-next, from the compare API, fetched alone at depth 1. If that can't be read or fetched, it checks every file.Baseline shrinks never fail. The existing check only prints a note asking for
--update-baseline; this PR keeps that and adds no write-back.Testing
GodfilePullRequestScope(temp repos: an unrelated change over base reds, growth of an over-budget file or type, pushing a file past budget, a new file, shrinks, a merge commit's first parent, an unknown base, and the CI wiring). 8 failed before the fix.python3 -m unittest tests.test_cmux_next_checks_workflow: 48 OK after.--only rust --base $(git merge-base HEAD origin/feat-cmux-next)passes and notes profiles.rs and requests.rs. Without--base, it fails on them as before.--only swiftpasses in 57 s (60 s before).actionlintis clean on both workflows.python3 scripts/verify-local.py: the same 4 failures as origin/feat-cmux-next (swift-syntax, localization, localization-defaults, package-groups).Changelog
none
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Stops god-file checks from failing every pull request because a file on the base branch is already over its limit. The check now takes a
--base REFand fails only when a file's numbers grew relative to that REF; an over-budget file that this change did not grow prints a note instead. CI wires pull requests to compare against the merge commit's first parent, andcmux-tui.ymllint against the merge base withfeat-cmux-next. Pushes still check every file.The base is measured from a
git archiveofREFonly when the check would fail, so a passing PR pays no extra time.Written for commit 9fb9ded. Summary will update on new commits.
Note
Low Risk
CI and lint-script behavior only; no runtime product paths. Mis-scoped bases could miss or over-report god-file growth, mitigated by tests and push/full-check fallbacks.
Overview
God-file CI no longer fails unrelated pull requests when feat-cmux-next already has over-limit Swift or cmux-tui Rust files.
check-no-godfiles.shgains--base REF: violations fail only when line/function (or Swift type) counts grew versus that ref; unchanged over-budget entries become NOTEs. Base measurement usesgit archiveonly when the head check would fail, so clean PRs avoid extra work.cmux-nextchecks pass--base HEAD^1on pull requests (checkoutfetch-depth: 2); pushes still run the full tree check.cmux-tui.ymllint uses the commit’s merge base withfeat-cmux-nextvia the compare API when fetchable, otherwise falls back to checking every file.GodfilePullRequestScopeintests/test_cmux_next_checks_workflow.pylocks in growth-only failures and the workflow wiring.Reviewed by Cursor Bugbot for commit 9fb9ded. Bugbot is set up for automated code reviews on this repo. Configure here.