Repository navigation
Cloud start: a copy of a folder this Mac trusts is trusted on the machine - #31106
Conversation
…hine A send to Cloud from a folder the person trusts opened its copy on the machine behind "Trust the cloud-proof repo?", and the first message never went (capture at ff3f8c9, 2026-11-01). `cmux link start-chat copy --acpmux-home H` now answers `source_trusted`: this Mac's acpmux reads the chat's folder trusted (acp.trust.get's level). The App then records `trusted` for the copy on the person's own Cloud machine (agent-session-trust, owner link only) before the chat shows. An unknown or untrusted folder is still asked about there. This narrows cx-1bhjj: the person's answer on this Mac counts for their own copy of the same folder. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
|
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)
web and size checks: green Shipped in:
|
|
Owned by an agent session · session |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
…-carry-trust # Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextApp/Cloud/CloudStartChat.swift
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
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. |
|
Found 2 test failures on Blacksmith runners: Failures
|
… source lines flat Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
…-carry-trust # Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextCloud/Move/CloudMoveCLI.swift
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
…-carry-trust # Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextApp/Cloud/CloudStartChat.swift
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. |
|
Review (independent Codex gpt-6.1-sol, high, via the review router; full diff from merge base e0fa06f to this head): SHIP at 4945d28. [P2] [follow-up] Packages/macOS/CmuxNext/Sources/CmuxNextApp/Cloud/CloudStartChat.swift:148 - the new trust RPC can await up to 10 seconds after the last account check; if the user switches accounts during it, the stale chat still opens and the local tab closes - recheck the account immediately after |
|
Review (next-review patch-id; carried): SHIP at d600940 The independent SHIP at 4945d28 carries to this head: the PR's own change ( |
…o CmuxNextHostedChief (#31218) The arch ratchet's app_lines row was +15 at the feat-cmux-next tip against the last green arch tip 006666a (#26600 +22, #31055 +16, #22953 +15, #31147 +5, #31106 -1, #31182 -42). CmuxNextApp may not grow. ServerReachPlan (which paired servers the app reaches, and the parsers of chief.list, team.hosts.list, `cmux link show` and `cmux link peer list`) holds no app state: it is value types and pure functions over CloudChief (CmuxNextHostedChief) and ServerReach (CmuxNextRemote). It moves as it is into CmuxNextHostedChief with a public API; ServerReachService in the App calls it. CmuxNextHostedChief now depends on CmuxNextRemote (service -> service). Behavior-neutral: the only body change is parseChiefs, which read the chiefs through the App's CloudChiefs.parseList after its guard proved `chiefs` is an array; it now maps that array with CloudChief.parse itself, the same result.
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
What
A Cloud start copies the person's folder to their machine and opens the chat there. The machine's acpmux had no trust answer for the copy, so the chat showed "Trust the cloud-proof-2025f5 repo?". The first message sat in the composer and was never sent, even though the person had sent it from a folder this Mac trusts.
Evidence: a DEV capture of build ff3f8c9 on 2026-11-01, Cloud fixture, existing machine "cloud-chats". For 5 minutes after the send,
debug.surfacesshowed the machine's agent pane with"kind": "agent", "phase": "restoring". The still shows the trust card ("Not now: The agent won't run here until you trust it.") above the unsent message.Policy change: this narrows cx-1bhjj
Under cx-1bhjj, only the person's own click on a machine trusts a folder there. With this PR, the person's existing trust answer on this Mac also counts for their own copy of that same folder, made by this start, on their own Cloud machine. Nothing else changes:
level: "trusted"(the sameacp.trust.getread its own pane uses). That covers the person's decision, their auto-trust rules, or the agents' own levels.--acpmux-homegiven.agent-session-truston the chat's tab and is sent only on the link's owner answer (vm_kind: "owner"). The machine daemon's own checks still apply: the machine kind gate, its own agent tab, and the home-folder rule.ownerLink, so nothing is sent.How
cmux link start-chat copy):--acpmux-home Hflag.source_trusted, read from that acpmux home's trust record byacpmux::trust::getfor the chat's folder (localplussubpath).QuitAgents.environment), so a DEV build reads its own record.CmuxNextDaemon): newAgentSessionAttachClient.trustCopiedFolder. It sendsagent-session-trustat leveltrustedonly whensourceTrustedis true and an owner link exists. A failure is quiet: the page then asks as before.CloudStartChat.open): calls it after the tab exists and before the workspace is shown.Tests
a_copy_answers_whether_this_macs_acpmux_trusts_the_chats_folder. It covers:cmux-ci test -- cargo test -p cmux-tui --lib link::start_chat_cli. Fleet app compile:cmux-ci compile-check --appat the head.Related: #31087 (the second copy after a machine update uses the machine's new link socket) touches the same
CloudStartChatlines.Agent session: agent session
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes Cloud start so a folder this Mac trusts no longer prompts to trust its copy on the person's own Cloud machine. This narrows cx-1bhjj: the person's existing trust answer on this Mac also counts for their own copy of the same folder on their own Cloud machine, so their first message is no longer held behind a second prompt.
How it works
cmux link start-chat copytakes--acpmux-homeand answerssource_trusted, read from that acpmux home's trust record the same wayacp.trust.getreads it.trustedfor the copied folder on the machine (agent-session-trust) before the chat shows, only whensource_trustedis true and an owner link exists; failures stay quiet and the page asks as before.--acpmux-homenever answers trusted.Written for commit d600940. Summary will update on new commits.