Skip to content

Cloud start proof: integration of #29962 and #30162 (capture only) - #30171

Closed
teamleaderleo wants to merge 7 commits into
feat-cmux-nextfrom
cloud-proof-integration
Closed

teamleaderleo wants to merge 7 commits into
feat-cmux-nextfrom
cloud-proof-integration

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

HOLD: capture-only integration for the Cloud start proof; it is not meant to land. Its parts land through #29962 and #30162.

feat-cmux-next at 444b31d with #29962 (head 7f7b9d3) and #30162 (head e38150c) on top, so a fleet capture app (cmuxterm-hq pr-capture-cloud, whose provenance takes a manaflow-ai/cmux pull request head) can run Leo's flow: "whenever i start a chat it should be able to send me to cloud autommatically keep launching/downloading new dev builds and such".
Agent session: agent session

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Capture-only integration of #29962, #30162, and #30258 onto feat-cmux-next so a fleet capture app can drive Leo's flow: starting a chat on Cloud automatically and launching and downloading dev builds. This branch is not meant to land; its parts land through the individual PRs.

  • DEV and dogfood builds transfer the Claude login to the creator's team machine (a team guest whose creator is the caller), including the credential-recovery restart; production still requires an owner guest.
  • New compose_send and run_mode automation verbs drive the composer's Return and the run row's Cloud pick, so a chat reaches cloud.startChat instead of chat.send.
  • A DEV build's legacy exec update takes its pin from a new cmux link machine pin command, and a chat copy refused by the machine's outdated daemon is retried after the update on the machine's new link — the daemon restarts, so the retry waits up to 90 s for the new socket instead of failing on the stale one.
  • The Cloud start reads its cached Claude login with security find-generic-password -w (30 s bound) instead of SecItemCopyMatching, whose macOS permission prompt never gets answered on a headless capture runner and stalls the start on "Clone repository".

Written for commit e35296b. Summary will update on new commits.

View guided diff Turn on auto-fix

teamleaderleo and others added 7 commits November 1, 2026 00:00
…ompile red #29962 carries

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
…med the gate)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
…ing SecItemCopyMatching

A DEV build's Cloud start passes the person's Claude login alongside the
folder copy and awaits it before the chat opens (CloudStartChat+Login).
The cached login is stored by `cmux cloud secret set`, which writes it with
/usr/bin/security, so the item's Keychain ACL trusts only that tool. The
app read it with its own SecItemCopyMatching, which asks macOS for access
with a modal prompt and blocks until someone answers. On a capture runner
nobody does: the copy finished in a second, yet the card sat on "Clone
repository" for the whole capture, awaiting the read.

Read it the way CloudHandlers.keychainValues reads the same service:
`security find-generic-password -w`, bounded at 30 s, no prompt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
A chat start whose copy the machine's older cmux-tui refused (machine_outdated)
updates the machine and copies again. The update restarts the machine's daemon
and its link comes back on a new socket, but the second copy reused the socket
read before the update and failed: "cannot connect to .../cmux-link-....sock:
No such file or directory (os error 2)" (capture at ff3f8c9, 2026-11-01).

CloudOutdatedMachine.copy now reads the socket for each copy and, after an
update, waits (up to 90 s) for the connection's handshake key to change before
reading it again. CmuxNextApp shrinks by one line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
… team machine

Every machine on a team account has guest kind "team", including one Leo just
made, so #29771's first-chat login and the "Transfer and restart" recovery both
end in "Personal credentials can only be transferred to a Cloud machine you
own." In DEV and dogfood builds (cloud.startChat's existing gate), a team guest
whose creator is the caller (the platform's vmKind == "owner" answer, still
checked before and after the login) may take the login. Production keeps
requiring an owner guest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
…er the same DEV allowance

Review (router-review, SHIP at 2997fae, P1 follow-up): the transfer installed on a
team guest but the restart still required an owner guest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

web and size checks: green

Default changes

No defaults change at e35296b46fd6.

@blacksmith-sh

blacksmith-sh Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Found 4 test failures on Blacksmith runners:

Failures

Test View Logs
main.DeveloperIdAppTests.test_download_prints_the_active_profile_only/
test_download_prints_the_active_profile_only
View Logs
stubs: /System/Library/Frameworks/Security.framework/Versions/A/Security has no stub/
Security has no stub
View Logs
stubs: CoreFoundation.tbd: install-name /System/Library/Frameworks/
CoreFoundation.framework/Versions/A/CoreFoundation, missing 1: ['_CFRetain']/
CoreFoundation, missing 1: ['_CFRetain']
View Logs
stubs: CoreFoundation.tbd: install-name /System/Library/Frameworks/
CoreFoundation.framework/Versions/A/CoreFoundation, missing 1: ['_log2']/
CoreFoundation, missing 1: ['_log2']
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo
teamleaderleo force-pushed the cloud-proof-integration branch from 6b4eaee to 321357d Compare November 1, 2026 07:37
@teamleaderleo
teamleaderleo force-pushed the cloud-proof-integration branch from 1c22665 to 2315825 Compare November 1, 2026 09:33
@teamleaderleo
teamleaderleo force-pushed the cloud-proof-integration branch from 2315825 to f489882 Compare November 1, 2026 09:55
@teamleaderleo
teamleaderleo force-pushed the cloud-proof-integration branch from f489882 to 3d9dabf Compare November 1, 2026 09:58
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Closing: this was a capture-only integration (HOLD: not meant to land). Both its parts merged, #29962 and #30162, so it has nothing left to do.

This branch was previously deployed

1 inactive deployment
ci-routing-agent — e35296b4 Deployed Nov 1, 2026 by teamleaderleo via cmux-tui tree preflight #96768
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant