Repository navigation
ci: overlap local Rust helper builds with nightly Swift compilation - #13874
Conversation
The cmux target's diff sidecar, Nucleo FFI, and cmux-cua phases run after the Swift compile although they do not read it, adding about 100 s of cargo work to the end of every nightly build. Start the same build scripts in the background before xcodebuild, with the phases' Cargo target directories, deployment target, and SDK, so the phases find every unit fresh. A failed or late prebuild only leaves the work to the phases; Cargo's build-directory lock serializes the two.
|
All contributors have signed the CLA ✍️ ✅ |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughThe nightly Release workflow now starts a low-priority Rust helper prebuild while Xcode compiles. The script builds three helpers in parallel, and the workflow reports helper failures while exiting with the Xcode build status. ChangesNightly helper prebuild
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Other Merge Risk: ⚪ Minimal · up to The nightly build remains governed by the Xcode result, and its existing phases can build the helpers if prebuilding fails. No actionable merge-blocking issue was established. 🚥 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 1 functions across 1 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches📝 Generate docstrings
🧪 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 |
|
Independent review of 2d976ca: helper compilation overlaps Swift using matching Cargo paths and SDK/deployment settings; authoritative Xcode phases still build or reuse their outputs. Review found an unbounded wait on the optional prebuild after build failure; the revision fixes this with a bounded process-group supervisor preserving the actual build status and cleaning up descendants. Independently reran all five behavioral lifecycle tests successfully. Native experiment 35810949235 establishes the original parallel helper optimization; end-to-end production timing after landing remains to be measured. BasaltUnwind g1 🗝️ |
|
Final independent review at 4bfdd2d: no blocking findings. Only diff-sidecar and Nucleo prebuild concurrently; cmux-cua remains in its authoritative phase to avoid interrupted shared Git checkout hazards. Helper process groups are bounded and cancelled on build failure/cancellation; the required build determines success. Six lifecycle tests pass locally, and current CI checks including Web complexity pass. The earlier experiment included cmux-cua, so its 88-second saving is not claimed for this narrower final change; production timing remains to be measured. BasaltUnwind g1 🗝️ |
069f1ce ci: streamline app-host test consumers (manaflow-ai#13427) cfe69ec Merge pull request manaflow-ai#13885 from teamleaderleo/docs/full-ci-explicit-scope 25a6378 docs: require explicit broad-suite intent for full-ci 0a6c362 Merge pull request manaflow-ai#13749 from manaflow-ai/ci/app-host-product-fast-transport 3094a95 ci: overlap local Rust helper builds with nightly Swift compilation (manaflow-ai#13874) ea4b13b CI: run Claude wrapper regressions without compiling the app (manaflow-ai#13869) 8f1491b test: bound SSH fish helper pipe draining (manaflow-ai#13408) 9667375 Merge pull request manaflow-ai#13826 from manaflow-ai/12284-claude-wrapper-subcommands 40b0cd7 ci: scope trusted web complexity before Bun setup (manaflow-ai#13598) 0f0d4a7 ci(iOS): build simulator test product once (manaflow-ai#13600) 0f28e77 Merge main settings runtime repair for native validation 819adce Merge branch 'main' of https://github.com/manaflow-ai/cmux into 12284-claude-wrapper-subcommands 7442bf7 Merge remote-tracking branch 'origin/main' into 12284-claude-wrapper-subcommands b6507c7 Merge remote-tracking branch 'origin/main' into 12284-claude-wrapper-subcommands eed9ca5 Merge main to use corrected test execution and CI routing 645e8af test: control the Claude catalog cache clock 3c0637d Merge remote-tracking branch 'origin/main' into 12284-claude-wrapper-subcommands 6229cdc fix: expire successful Claude command discovery catalogs 6f775da test: require bounded Claude command cache freshness 2132e30 fix: preserve cancellation during Claude command discovery 7ac2789 Merge remote-tracking branch 'origin/main' into 12284-claude-wrapper-subcommands 8cc6659 fix: discover and cache Claude subcommands before hook injection 59dd108 test: cover Claude command discovery and fallback a9da704 ci: fall back cleanly on artifact decoder errors bfb744f test: reproduce artifact decoder failures escaping fallback a02abe7 ci: bound the suite coverage diagnostic job 8237edc Merge main and preserve the derived review-fabric contract group a982dec test: check review-fabric routing through the router, not its source text (manaflow-ai#13788) 0d16b9b Merge branch 'main' into ci/app-host-product-fast-transport 74b94e3 CI: read the app-host test product over parallel range requests # Conflicts: # .github/workflows/ci-artifact-transport.yml # .github/workflows/ci-guards.yml # .github/workflows/ci-macos.yml # .github/workflows/ci.yml # .github/workflows/nightly.yml # .github/workflows/test-ios.yml # .github/workflows/web-complexity-trusted.yml
The nightly Release build currently compiles local Rust helpers after Swift finishes. Start the diff sidecar and Nucleo FFI builds alongside Swift at low priority so their authoritative Xcode phases can reuse Cargo outputs.
The helper prebuild uses the same target directories, SDK, and deployment target as the phases. Each phase still builds, packages, and verifies its own outputs. A Python supervisor bounds optional work to ten minutes, terminates entire process groups on build completion or cancellation, and preserves the primary build status.
cmux-cua deliberately stays in its existing required phase: its shared Git checkout can leave index locks if an optional prebuild is killed during mutation. This change does not touch that source cache.
Native experiment 35810949235 measured diff-sidecar prebuild at49s and Nucleo at23s, with corresponding phase Cargo invocations warm. That experiment also overlapped cmux-cua and reduced the whole tail111s→23s; the final narrower implementation does not claim that full reduction. Its end-to-end saving will be measured on the next ordinary nightly.
Validation: six lifecycle tests cover primary failure, optional failure, deadline, successful warm completion, cancellation reaching grandchildren, and exclusion of shared Git source mutation. Determinism checker reports zero findings or suppressions; registry, release guard, nightly decision tests and shell syntax pass. No additional native experiment dispatched.
Summary by CodeRabbit