Repository navigation
Cloud start: a send waits for the Cloud pick's folder grant - #34427
Conversation
Picking Cloud granted the chip's folder fire-and-forget (#34415), so a Return right after the pick could reach cloud.startChat before workspace.useFolder finished and still be refused as path_outside_roots. The grant's promise is kept (cloudFolderGrant), from the composer's Cloud row and the New Tab pick (newTabProjectPick's `granted`), and the Cloud start's native call waits for it first. 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)
Gallery before/after for
States
Pick other states with a Unclear: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base 3812d4b; does not block Shipped in:
|
|
Found 36 test failures on Blacksmith runners: Failures
...and 26 more test failures. View all on Blacksmith
|
|
Review (subagent claude-opus-5-5 medium): SHIP at 6ef05ea Visual verdict: unchanged by this diff (no rendering change; it only orders the Cloud start after the folder grant). Checked: Follow-ups:
|
…folder's grant (#34592) Fix-forward of #34427's review follow-up. The Cloud send waited on the last Cloud pick's workspace.useFolder promise with no time limit, so a grant that never answered kept the composer locked. Grants are now kept by folder (cloudFolderGrants), a start waits only for the grant of the folder it sends, and at most CLOUD_FOLDER_GRANT_WAIT_MS (3 s); past that it sends anyway and the host's worded refusal (#34406) covers a folder still not granted. 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, on the "The app refused the agent connection." card under a failed "Set up a Cloud machine" step: "what happened here on this build?"
Fix-forward of the #34415 review follow-up. Picking Cloud granted the chip's folder fire-and-forget (
void pickFolder), so a Return right after the pick could reachcloud.startChatbeforeworkspace.useFolderfinished and still be refused aspath_outside_roots.Change
App.tsx:cloudFolderGrantkeeps the last Cloud pick's grant promise, from the composer's Cloud row and from the New Tab pick. The Cloud start's native call (oneCloudStart) waits for it first; a failed grant still lets the start go, and the host words its refusal (Cloud start: a start refused on this Mac says why, and marks no step failed #34406).cloudRun.ts:newTabProjectPicktakes an optionalgrantedcallback that receives the promise. Test incloudRun.test.ts.Risk: low. A Cloud start waits at most as long as the grant that is already in flight.
Agent session: agent session
🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes a race where pressing Return right after picking Cloud could start before the folder grant completed, getting the Cloud machine refused as
path_outside_roots.The Cloud pick's folder grant (
workspace.useFolder) now keeps its promise, and the Cloud start waits for it before sending. A failed grant still lets the start go, so the host's refusal wording is unchanged. Risk is low: the start waits at most as long as the grant already in flight.Written for commit 6ef05ea. Summary will update on new commits.