Repository navigation
Cloud start: wait for the tab capability after updating an outdated machine - #31995
Merged
Merged
Conversation
…ability itself 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. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-b3ddf8ea0a5ba6fad749
teamleaderleo
temporarily deployed
to
ci-routing-agent
November 2, 2026 08:00 — with
GitHub Actions
Inactive
Contributor
|
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)
Shipped in:
|
teamleaderleo
temporarily deployed
to
ci-routing-agent
November 2, 2026 08:01 — with
GitHub Actions
Inactive
Collaborator
Author
|
Review (subagent claude-opus-5-5 medium): SHIP at 0fb6eef. Follow-ups: none. The wait wakes on DaemonStore.identity (@observable) through holdsTabs; the daemon object is stable across the update; a failed update or missing capability still ends within 90 s with the caller's refusal; the new test fails on the old link-change wait. |
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The no-folder Cloud start updates an outdated machine before opening the chat tab (#31145). It waited only for the machine's link to change, not for the capability it needed. A new link can come up before its handshake advertises
agent-session-tabs-v1, so the open was refused although the update had worked.A DEV end-to-end capture of a799d97 showed this: the first start failed with "this machine's cmux-tui cannot hold agent chat tabs yet: update it", and the next send's retry on the same machine succeeded.
CloudOutdatedMachine.updateBeforeUsingCapabilitynow waits, still bounded by 90 s, forholds()itself.holdsTabsreads the observable daemon store's identity, so the wait wakes on the new handshake rather than polling. Thelinkparameter is gone, so CmuxNextApp loses one line.Leo's ask (the no-project Cloud chat): "i want us to be able to do this too".
Testing
CloudOutdatedMachineTests.aNewLinkWithoutTheCapabilityYetIsWaitedFor: the update returns, and the capability arrives one turn later.holdsTabsis false at return, and the open is refused.prepush-gate.py: no new violations, app_lines -1.Observed / Not run
Changelog
Fixed: a new Cloud chat no longer fails its first start right after the machine updates.
Agent session: agent session
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes the no-folder Cloud start so a freshly updated machine no longer refuses its first chat open. The update wait now checks for the
agent-session-tabs-v1capability itself, not just for the link to change; a new link can come up before its handshake advertises the capability, which previously caused the open to be refused even though the update had succeeded.CloudOutdatedMachine.updateBeforeUsingCapabilitynow waits onholds()(bounded by the same 90 s), waking on the new handshake via the observable daemon store instead of polling.linkparameter is removed from the method and its call site.Written for commit 0fb6eef. Summary will update on new commits.