Repository navigation
cmux link machine update: a tree-mode DEV build pins the build its cmux-tui tree published - #30421
teamleaderleo wants to merge 1 commit into
Conversation
…ux-tui tree published A DEV app bundles cmux-tui built from its own tree (mode=tree); its own commit is never published, so the commit manifest is a 404 and the app still could not update a Cloud machine whose older image refuses the first chat. Take the pin from tree/<key>/source.json's publishing commit, as RemoteInstaller.plan does, and treat a machine already on that commit as current. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
|
Review (subagent claude-opus-5-5 medium): SHIP at 40b7c36 No blocking findings. The tree fallback checks what Follow-ups (filed as one issue):
|
|
Owned by an agent session · session |
|
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)
|
|
Found 15 test failures on Blacksmith runners: Failures
...and 5 more test failures. View all on Blacksmith: run 41285759871, run 41285759817
|
…om its published commit or cmux-tui tree (#30604) Re-lands the Rust half of #30258 (reverted in #30438 for the CmuxNextApp line ratchet, which this half does not touch) together with #30421's tree pin: - no bundled manifest: the build's own commit manifest on files.cmux.com pins it; - a tree-mode DEV bundle whose commit is unpublished: tree/<key>/source.json's publishing commit pins it, and the tree must list the same digest; - a machine already on that publishing commit is current (same_tree). Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo, 2026-10-31: "whenever i start a chat it should be able to send me to cloud autommatically keep launching/downloading new dev builds and such".
Follow-up to #30258 (and item 3 of #30373). A fleet capture of a DEV build that includes #30258 still failed the first Cloud send with "cloud-chats runs an older cmux that can't take this chat yet", because the update had no build to install:
mode=treeincmux-tui.version). CI never publishes the DEV app's own commit, sofiles.cmux.com/cmux-tui/<commit>/manifest.jsonwas a 404. CI publishes the tree instead, undertree/<key>/, from whichever commit first built it.cmux link machine updateansweredmachine_update_unavailable.Change (Rust,
cmux-remoteandcmux link machine update)pinned_linux_payload: when the build's own commit manifest is missing, readkey=from the tree-modecmux-tui.versionbeside the binary, then:tree/<key>/source.json;This is the same check
RemoteInstaller.plandoes for SSH hosts. A release build, a pin-mode bundle, and a dirty or unpublished build behave as before.It now returns
PinnedPayload { path, sha256, commit }.machine updatetreats a machine already on the publishing commit as current (same_tree). Without this, a tree-mode app whose own commit differs from the publishing commit would update the machine on every send.The
machine_update_unavailablemessage no longer says that DEV builds cannot update machines (item 1 of Cloud machine update from DEV builds: follow-ups from #30258 #30373).Tests
cmux-ci teston the Linux pool:cargo fmt --check: clean.cargo test -p cmux-remote --lib published_pin_tests: 4 passed, including the newa_tree_bundle_takes_its_trees_publishing_commit.cargo clippy -p cmux-remote -p cmux-tui --all-targets -D warnings: clean.Agent session: agent session
🤖 Generated with Claude Code