Repository navigation
cmux NEXT: update CLI commands answer what happened, never just "ran" - #25245
Conversation
settings check-for-updates returns the running and newest builds (or the check's failure); install-available-update / palette.attemptUpdate return once the update installs, with why nothing installs, or with the state it reached after 20 s. Before, both only said ran (target -). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16f97-4770-7d40-a44d-8bf1f6ca0981&host=cosmic-gray
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16f97-4770-7d40-a44d-8bf1f6ca0981&host=cosmic-gray
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Owned by hotswap-opus on cosmic-gray · session |
|
Found 2 test failures on Blacksmith runners: Failures
|
…cy and failure reason The install run counts the gate's moves from before its request, so a failure Sparkle reports inside the request is the run's error and an earlier check's note is not. A managed policy refuses the check without reading the feed. A failed install names Sparkle's error, not a stale probe failure. No task group (the region isolation checker rejects it). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16f97-4770-7d40-a44d-8bf1f6ca0981&host=cosmic-gray
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16f97-4770-7d40-a44d-8bf1f6ca0981&host=cosmic-gray
|
|
…rror at the limit Only work in progress answers pending; a repeated synchronous failure (the gate never moves off its note) is the run's error. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16f97-4770-7d40-a44d-8bf1f6ca0981&host=cosmic-gray
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on c3cbea8 to compare; do not merge until green; see lane-rules Tour of |
|
|
… not a sleep Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16f97-4770-7d40-a44d-8bf1f6ca0981&host=cosmic-gray
…p only maps them The app-size guardrail refuses new App logic: checkAnswer() and installAnswer(after:limit:) move to UpdaterService, and UpdateHandlers maps their UpdateCommandAnswer to the action's result. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16f97-4770-7d40-a44d-8bf1f6ca0981&host=cosmic-gray
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
claude-sr2 (2026-10-26, relaying Leo's NIGHTLY update): "check-for-updates and install-available-update did nothing ("target -"), while palette.attemptUpdate installed within seconds ... Fix the CLI commands so they install, or return a real error, never "target -"."
Before. Both
cmux settings check-for-updatesandcmux settings install-available-updatereplied only withran true/target -. The check fetched the feed and showed its answer on the notice card, but not on the CLI. The install asked the gate to install but never said whether it did, or why not. From the CLI, a run that did nothing looked the same as one that worked.After. Both actions report a value through
ActionRegistry.track(result:), andaction.runanswers it asresult. This only happens when a caller captures the run (the CLI,action.run, MCP). A menu or palette run is unchanged.settings check-for-updatesfirst starts the same check as before, then runs the read-only probe. It answersoutcome(update_available/up_to_date/requires_newer_macos), pluscurrent_build,newest_build,newest_versionandfeed. If the feed can't be read, the run fails withupdate check failed: <reason>.settings install-available-updateandpalette.attemptUpdatefollow the flow:state: installingand the relaunch follows.unavailableand the reason (up to date includes the running build).pending: true:downloadingwithprogress,ready, orchecking. That's under the action run's 30 s settle limit.A note or idle phase that was already there when the action returned (an earlier check's) is not taken as the answer.
All three actions are marked
waitsForResult, soaction.runwithwait(the CLI) gets the 40 s result deadline instead of the 2 s control-plane one.Not in this PR: claude-sr2's point 2 (the idle install held the update ~9.5 min behind busy agent turns). The relaunch gate belongs to the cx-oy6yl lane's #24851, which makes every relaunch immediate and isn't in Leo's build yet. That's reported separately.
Tests:
UpdateActionResultTests:pending.Risk: low. Only capturing (CLI) runs change: they now wait up to 20 s for an answer instead of returning at once. The install path itself (
installAvailableUpdate) is unchanged.No capture: CLI output only, no UI change.
Agent session: cosmic-gray
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.