Repository navigation
Cloud: update outdated machines before opening no-folder chats - #31145
Conversation
|
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 4d50df9 to compare; do not merge until green; see lane-rules Shipped in:
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/41330433296 at e0fa06f failed: cmux-next crash ends the app. |
|
Found 6 test failures on Blacksmith runners: Failures
|
|
Review (subagent claude-opus-5-5 medium): SHIP at a4acbac The fix works: Follow-ups:
|
…1147, #31145) (#31182) arch-ratchet at the feat tip 2aaed54: [app_lines] CmuxNextApp +5, from #31147 (AgentTabRemoteHost.swift) on top of #31145's +4. HandshakeFollower and its Handshake and Snapshot types hold only value logic and no app state; they move from CmuxNextApp/Cloud/CloudMachineUpdates.swift to CmuxNextCloud/Link/HandshakeFollower.swift, and their four tests move to CmuxNextCloudTests. No behavior change; the app calls the same API. (cherry picked from commit 1d78bf5; prepared earlier today, fleet compile 10238882589a and suites 0a0c418e4823 green at its first base)
…ability itself (#31995) The no-folder start's update-before-open (#31145) waited only for the machine's link to change. A new link can come up before its handshake carries agent-session-tabs-v1, so the open was refused although the update had worked: a DEV capture at a799d97 failed its first start with "cannot hold agent chat tabs yet" and the next send's retry succeeded. Wait, bounded by the same 90 s, for the capability. Agent-Session: https://cmux.com/deeplink/agent?id=aid-b3ddf8ea0a5ba6fad749 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 asked for no-project Cloud chats to start immediately: “I want us to be able to do this too.”
When a Cloud chat had no folder and its selected machine was running an older cmux-tui, startup attempted to open the chat tab before updating the machine. The daemon lacked
agent-session-tabs-v1, so the start failed with the existing unsupported-machine refusal.This change reuses the package-level Cloud outdated-machine relink wait before opening a chat tab. If the machine does not advertise the capability, Cloud updates it, waits up to 90 seconds for the new handshake, and then lets the existing tab-opening path re-anchor and perform its normal capability check. Folder and no-folder starts share this path. If the update cannot complete or times out, the existing refusal remains. Package tests cover update-and-capability arrival, bounded relink timeout, and already-current machines.
Validation:
python3 scripts/cmux-next/prepush-gate.pyagent-identity footer --repo manaflow-ai/cmux
Agent session: agent session