Repository navigation
ci: prevent test-only PRs from bypassing cmuxTests compilation - #12174
austinywang wants to merge 10 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
All contributors have signed the CLA ✍️ ✅ |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (3)
💤 Files with no reviewable changes (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 2 remain after this review. 📝 WalkthroughWalkthroughThe CI workflow now runs for all pull-request changes, removes the fallback workflow, and compiles the ChangesCI validation
Priority: ➖ Normal — Schedule the CI routing change because it prevents test-only pull requests from bypassing cmuxTests compilation and addresses a medium-severity test failure. Estimated code review effort: 3 (Moderate) | ~20 minutes Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to CI now compiles the complete cmuxTests bundle before selected tests run, preventing test-only changes from bypassing compilation. The documented workflow behavior is covered and no concrete current-head merge-blocking risk remains. Suggested reviewers: 🚥 Pre-merge checks | ✅ 24 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (24 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 1 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
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 |
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 071a590. Configure here.
071a590 to
968a950
Compare
|
Review closeout for 968a950:
|
HEAD audit — 968a950Rechecked the final three-file diff, current-main ancestry (
No separate Codex or Greptile review bodies are present. The cubic check is neutral because it skipped the history rewrite; Vercel Agent Review is neutral because it lacked credits. Those are not represented as completed code reviews, and no manual second-model review was started. CodeRabbit's updated body at 16:42:59 UTC now reports the Linked Issues check passed and no actionable comments; its only remaining advisory is the docstring threshold answered above. The final 16:45 UTC snapshot confirms the same HEAD/main ancestry, resolved thread, and no new review asks. The updated CLA/Vercel comments add no code findings. Verification and merge decision
The branch is current with main and |
|
Superseded by the current main CI router and compile-admission gate, including test-only routing and whole cmuxTests build coverage. Closing this PR. |

Summary
Fixes #12055.
cmuxTests/SurfaceCatalogTests.swift-only PR now selects macOS CI instead of bypassing the workflow entirely.ci-status-fallback.yml: it could satisfy the requiredci-statuscheck without compiling the test bundle. The routed CI aggregate is now the sole owner of that status.cmux-unit build-for-testinggate on app-host shard 1. It compiles the entire test bundle before any test-selection or expected-failure handling, using the same inheritedCMUX_CI_APP_HOST_ISOLATION_REQUIREDcompilation condition as the test wrapper so the configuration can reuse that shard's DerivedData.Reproduction and source history
The issue's reproduction is a hosted unit-test invocation with a
cmuxTests/...filter. Its diagnostics, quoted verbatim, are:The pre-repair baseline
4e1c41e8cbf40a0c0e75841533f48e0bc303090freproduced both errors on the AWS M4 Pro builder withxcodebuild test -project cmux.xcodeproj -scheme cmux-unit -configuration Debug -destination 'platform=macOS' -derivedDataPath /tmp/cmux-issue-12055-baseline -only-testing:cmuxTests/SurfaceCatalogTests.git show 167bfea3354 --statand the #11929 PR file list both show only 265 added test lines. The implementation was pushed: PR commit397e299857d2ea56b816b0c7790638e488613b38changed 18 files includingSurfaceCatalog, providers, and rename state/write-through types. However, comparing the last PR merge commit4acdf8f3b69fdcabcc376ffae7cc07a693de5ecawith its main parent already shows only the test file. The source was lost in the PR branch's main integration, not by GitHub's squash operation.While this task was interrupted, #12113 merged at 2026-09-08 08:03:28 UTC as
b3991d6ec45, removing those orphaned tests and repairing separate CLI test-target wiring. This branch incorporates that repair. Its final diff intentionally has no Swift or Xcode project changes; this PR closes the CI bypass that allowed the breakage to merge.Architectural trade-offs
CloudVMState; an otherwise-unused legacy cursor/rename store would create a second state owner solely to satisfy removed tests. Re-landing the rename feature belongs in a separate, integrated source-and-tests change.Validation
python3 tests/test_ci_change_areas.py— PASS on current HEAD, both locally and in the fresh AWS copy; hostedworkflow-guard-testsalso passes. One earlier local rerun hit the shallow synthetic-merge fixture; its isolated rerun and subsequent complete reruns pass.bash scripts/lint-pbxproj-test-wiring.sh— PASS on current HEAD (821 test files).bash tests/test_ci_self_hosted_guard.sh— PASS.bash tests/test_ci_unit_test_spm_retry.sh— PASS.ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml")'— PASS.python3 scripts/swift_file_length_budget.py— PASS (0 changed Swift files).git diff --check— PASS.AWS M4 Pro full
cmux-unit build-for-testingatcc780d0a605f0455cad6664b165f2330c20c41deand071a5906b8cba5e19d53cb1bf138c5fb88ab4f04— PASS, both logs report** TEST BUILD SUCCEEDED **. These compile the entire test bundle, not just a selected file. The latter log finished at 15:33:41 UTC; unrelated edits were subsequently found in that old remote checkout (the coordinator file is timestamped 16:01:48 UTC). Those edits were left untouched.Current HEAD
968a950ae5d43fdbb8ea743d96e253c9fc118c08: the actual newCompile cmuxTests targetCI step PASSED, from 16:13:43 to 16:24:19 UTC on September 8, 2026, including the review-requested compilation condition. Evidence: https://github.com/manaflow-ai/cmux/actions/runs/34247910304/job/102140104702. This validates the production workflow command, not just the compiler shim. The separate fresh AWS attempt stopped before compilation: its copied framework was a dangling symlink; after replacing it using the pinned checksum-verified download, the saved SSH endpoint began returningLogin incorrectwithout executing commands. The canonical AWS endpoint is a different host and has only 125 MiB free. I did not start another build there or claim that interrupted direct-AWS attempt passed.python3 scripts/swift_warning_budget.py --log /tmp/cmux-issue-12055-head-build.logon that clean AWS test build — FAIL, 1,044 warnings in 420 buckets versus 221 allowed in 109 buckets. These are in the unchanged app/test sources (mostly existing test deprecations/concurrency warnings); this CI-only PR neither introduces Swift code nor expands the budget. This is explicitly not reported as a warning-clean build.Hosted focused run https://github.com/manaflow-ai/cmux/actions/runs/34241373450 at
cc780d0a605f0455cad6664b165f2330c20c41de— compiled and ran 38 tests: 36 passed, 2 failed. The failures areCloud delta patch preserves unaffected capability rows(cmuxTests/SurfaceCatalogTests.swift:318, expected terminal titlenew, observedold) andStale machine metadata cannot regress the accepted cloud workspace graph(cmuxTests/SurfaceCatalogTests.swift:385, a removed workspace remains). These assertions and catalog source are unchanged by this PR. They are not removed, weakened, or claimed to pass.Earlier successful AWS build command (in the branch's checkout under
~/cmux-runners/onec2-user@aws-m4pro-1):The later AWS recheck added
-disableAutomaticPackageResolutionusing the already-resolved packages. The successful current-HEAD CI step additionally passes"SWIFT_ACTIVE_COMPILATION_CONDITIONS=\$(inherited) CMUX_CI_APP_HOST_ISOLATION_REQUIRED".Remaining CI blockers (not waived)
tests-build-and-lagbuilds successfully, then fails the existing warning-budget check: 120 warnings in 52 buckets, with six over-budget buckets in unchangedAppDelegate+PaneMemoryGuardrail.swift,SessionIndexTableController.swift(two buckets),CmuxTuiSnapshotParser.swift,SurfaceCatalogModel.swift, andTerminalController.swift. The overall allowed total of 221 does not waive per-bucket limits. Evidence: https://github.com/manaflow-ai/cmux/actions/runs/34247910304/job/102140104546.ClaudeHookLifecycleCleanupTests:promptSubmitClearFollowsMovedPaneWithoutClearingSiblings()at line 231 andpreToolUseFollowsMovedPaneWithoutPidProbe()at line 290. Evidence: https://github.com/manaflow-ai/cmux/actions/runs/34247910304/job/102140104807.Review follow-up
7b945a7d04. The executable-step regression was committed first in7bb89dcc30and demonstrated the missing argument before the fix; it now passes for compiler exit codes 0 and 65. The two commits were pushed together as requested, rather than claiming a separate hosted red run.cmux reload-cloudidentity. Only those author/committer records were corrected, preserving their code trees and upstream history. Austin's existing CLA signature was confirmed; no agreement was signed and no policy/signature record changed. This required a guarded force-push and restarted CI.Hosted focused command:
No local Xcode/Swift compilation or local app launch was used, and no local tagged app/DerivedData artifacts remain. The saved AWS endpoint is currently inaccessible, so cleanup of the fresh copy under
~/cmux-runners/.leases/20260908075214-34763-29404/issue-12055remains blocked; the old checkout's foreign edits must be preserved. The canonical fleet lease is released. This PR is not merge-ready until required CI is green; no issue closure or merge has been performed.