reload: add explicit build-only validation mode - #12971
teamleaderleo wants to merge 2 commits into
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
|
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 (3)
Included review availability: Your plan provides up to 10 included reviews per hour; 1 remains after this review. 📝 WalkthroughWalkthroughThe reload script adds ChangesTagged reload workflow
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant Developer
participant reload.sh
participant StagedBundle
participant TaggedApp
participant cmuxd
Developer->>reload.sh: Run --tag --build-only
reload.sh->>StagedBundle: Build and stage bundle
reload.sh->>TaggedApp: Keep active app unchanged
reload.sh->>cmuxd: Keep daemon and socket unchanged
reload.sh-->>Developer: Report validation completion
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 2 functions across 1 files. (2 skipped: 2 unsupported.) ✨ Finishing Touches🧪 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 |
eb2257b to
af1290e
Compare
|
Follow-up polish after self-review:
Validation: |
|
Verified on the local Mac mini after initializing the pinned submodules:
|
|
Performance measurements on the same local Mac:
The cold numbers are not a claimed compile-speed regression/improvement: they were run at different times under different concurrent machine load, and build-only skips runtime teardown/publication by design. The useful result is that the build-only path preserves the expensive compile behavior while avoiding runtime-state churn; its cached validation pass completed in about one minute. |
8f41300 to
f032c25
Compare
Problem
The tagged reload command intentionally keeps the running app and
cmuxdaligned with the most recently built artifact. An environment-variable opt-out would let a build replace files on disk while leaving an older process running, which makes the active tag state ambiguous.Change
Add an explicit
--build-onlymode for compile/validation work that must not reload the active tag:--launch;cmuxd, socket ownership, and tag discovery state untouched;reload.sh --tag <tag>.This keeps “reload/build” exact-current semantics while providing an explicit escape hatch for callers that only need compilation or artifact validation.
Validation
bash -n scripts/reload.sh./scripts/reload.sh --helpexposes the mode./scripts/reload.sh --tag test --build-only --launchfails before build with the invalid-combination errorgit diff --checkA full tagged Xcode build was not run in this environment.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Adds a
--build-onlymode toscripts/reload.shso tagged builds compile and validate without touching the running app,cmuxd, socket, or tag state.--tagand fails if combined with--launch.--tagstill replaces the same-tag runtime by default.CLAUDE.mdand the tagged-builds reference to document the mode.Written for commit f032c25. Summary will update on new commits.
Summary by CodeRabbit
New Features
--build-onlyoption to validate a tagged build without replacing or stopping the currently running app.Documentation