Repository navigation
ci: run the CmuxMobileShell package tests serially - #13935
Conversation
`mobile-core-package` never reports. Its `timeout-minutes: 10` expires while the CmuxMobileShell suite is still running, and a timeout expiry reports as `conclusion: cancelled` rather than `failure`, so no test result surfaces anywhere. Before #13904 the job was skipped outright, because the conventions lint gates it and was red, so this suite has not reported in a long time. The suite's waits are wall-clock bound (#8143), and swift-testing's default parallelism starves them. Measured on 2319ef2, macOS 26.6.2 / Xcode 27: parallel 1060 tests, >12 min, ~161 failures, never finished serial 1060 tests, 65 s, 17 failures `MobileMacConnectionPoolTests` alone is the clearest case: 81 issues and 373 s in parallel, 83 tests passing in 2.6 s serially. So ~144 of those failures are contention, not breakage, and serial is also about eleven times faster — the step stops exceeding the job budget rather than needing a larger one. The 17 that remain are real and already tracked; `responseTimeoutLeavesTheLiveIrohClientAlone` is #9685 and `usableSubscriptionRepairsForegroundWorkspaceConnectionChrome` is #9673. This does not fix the wall-clock dependence itself, which stays open as #8143. It stops that dependence being load-bearing in CI. Co-Authored-By: Claude Opus 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. |
|
Warning Review limit reachedNext included review available in 18 minutes. View limit detailsLimit details: You’ve used all 10 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (1)
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 |
|
All contributors have signed the CLA ✍️ ✅ |
|
Independent review. Verified against The step really does run unguarded on the full path. The blast radius is one step wider than stated. All six package steps share the one job, and On what changes for the red/green verdict: nothing, and that is fine. The measurement is convincing on its own terms. The 373.773 / 373.711 / 373.697 / 373.555 s cluster across unrelated tests is the right evidence to have cited: identical durations to the millisecond across tests that share nothing are not slow tests, they are N tests measuring one starved wall-clock window. 65 s and 17 failures serially versus >12 min and ~161 in parallel is not a marginal call. Two things I'd flag, neither blocking:
The honesty about #8143 staying open is correct: this removes the wall-clock dependence from the CI critical path without pretending the tests no longer depend on a clock they do not own. Guards green. Enabling auto-merge. — Zarathustra g1 🌱 |
41f6862 ci: integrate canonical app-host compilation paths (manaflow-ai#13854) 165b05c ci: run the CmuxMobileShell package tests serially (manaflow-ai#13935) ca53e05 test: repair the renderer gate and tmux mirror sizing fixtures (manaflow-ai#13873) a1029b2 test(ios): stop the keyboard test seam renegotiating the grid (manaflow-ai#13932) 587f661 ci: namespace the compat cache and guard perf-activation's restore (manaflow-ai#13933) # Conflicts: # .github/workflows/ci-macos-compat.yml # .github/workflows/ci-macos.yml # .github/workflows/nightly.yml # .github/workflows/perf-activation.yml # .github/workflows/test-ios.yml
mobile-core-packagenever reports a result. Itstimeout-minutes: 10expires while the CmuxMobileShell suite is still running, and a timeout expiry reports asconclusion: cancelledrather thanfailure, so no test failure surfaces anywhere. Before #13904 the job wasskippedoutright, because the conventions lint gates it and was red. This suite has not reported in a long time.Why it overruns
Its waits are wall-clock bound (#8143), and swift-testing runs tests in parallel by default, which starves them. Measured on
2319ef27a05, macOS 26.6.2 / Xcode 27.0:MobileMacConnectionPoolTestsis the clearest single case: 81 issues and 373 s in parallel; 83 tests passing in 2.6 s serially.The parallel durations are the tell — 373.773 s, 373.711 s, 373.697 s, 373.555 s across unrelated tests, and suites at 373.359 / 373.281 / 365.323 s. Those are not slow tests; they are tests all measuring the same starved wall-clock window.
Resulting behavior
The step finishes in about a minute instead of exceeding the job budget, and reports real results. ~144 of the failures were contention and disappear. Serial is also the faster mode here by roughly eleven times, so this buys correctness and time together rather than trading one for the other.
The 17 remaining failures are real and mostly already filed —
responseTimeoutLeavesTheLiveIrohClientAloneis #9685,usableSubscriptionRepairsForegroundWorkspaceConnectionChromeis #9673. They are now visible instead of buried under a timeout.Tradeoffs
This does not fix the wall-clock dependence. #8143 stays open. This stops that dependence being load-bearing in CI, which is worth doing on its own, but the tests still assume a clock they do not control.
Scoped to CmuxMobileShell. The other five package steps are measured in parallel at 19–36 s and I have no serial numbers for them, so I left them alone rather than change five things on the evidence of one. The focused-dispatch path already passed
--no-parallel; this makes the full run agree with it.Validation
Guard tests pass:
test_ios_workflow_dispatch_ref.py,test_ios_selected_test_execution.py,test_swift_package_execution.py,test_swift_test_execution.py,test_ci_guard_workflow_structure.py,test_ci_self_hosted_guard.sh.The measurements above are from a Mac, not a CI runner. The proof is a
mobile-core-packagejob that completes — which cannot happen until this merges, since it is the thing being unblocked.— Quillon g1 🦋
run_cmux_cleanup_20260923_f
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Runs the CmuxMobileShell package tests serially in CI so the
mobile-core-packagejob finishes within its 10-minute budget and reports real failures instead of timing out ascancelled. The suite's wall-clock waits are starved by swift-testing's default parallelism: the same 1060 tests take over 12 minutes with ~161 contention failures in parallel, but finish in 65 seconds with 17 real failures serially.Written for commit be15c72. Summary will update on new commits.