Repository navigation
agent pane: a no-project chat is trusted from its first frame, not after a settings read - #34730
Conversation
… first frame acpmux trusts the folder the app made for a chat in no project (trust.rs made_by_cmux). The pane drew no trust answer until acp.trust.get had read the agents' settings files (up to 1.5 s); it now draws acpmux's answer at once and the read only refreshes it. Leo-ask: ask-fa845ab0fd Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-36c741e8cc8b4594cd3c
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-36c741e8cc8b4594cd3c
|
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 Shipped in:
|
|
Found 5 test failures on Blacksmith runners: Failures
|
teamleaderleo
left a comment
There was a problem hiding this comment.
Review (codex gpt-6-astra high, next-review, since=20261104T041521Z): SHIP at afe105a
SHIP at afe105a
Visual verdict: no images; Leo tries the build
- [P2] [follow-up] [category:correctness] [finding:F1] [outcome:pending] The matcher trusts look-alike folders. folderTrust.ts:103 matches
/tmp/project/Library/Application Support/cmux/agent-home/ws. Unlikemade_by_cmux, it verifies neither the actual home root nor the marker file. This incorrectly displays trusted and removes the initial send hold; the false state persists if the read times out. The server gate still protects execution. Seed from verified native agent-home identity and add coverage for look-alikes outside the home directory.
Confirmed the matcher behavior with Node; React tests could not run because Bun and dependencies are unavailable.
Follow-ups:
- F1: Restrict the seed to verified agent-home folders and cover false matches.
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo, 2026-11-03, beside the "This pane is still opening; try again in a moment." toast:
The close half is already fixed on base (#34367, #34530). This PR takes one piece of the second half: a chat in no project ("Do not work in a project") runs in its workspace's agent-home folder, which acpmux always trusts (
trust.rs,made_by_cmux). The pane still drew no trust answer for that folder untilacp.trust.getcame back. That read opens and parses the agents' settings files (~/.claude.json,~/.codex/config.toml) and checks git, with a 1.5 s timeout (TRUST_READ_TIMEOUT_MS). The folder is new for every workspace, so the pane's trust cache never had it. Until the read answered, the chat was not shown as trusted, and prompts held behind trust waited (trustHeldWaits).What changes:
folderTrust.tsaddsagentHomeTrust(cwd), which returns acpmux's own answer ({level: "trusted", decided: true}) for a direct child of~/Library/Application Support/cmux/agent-home. It returns nothing for a folder inside one, for the root itself, or for a look-alike path.useFolderTrustAskuses that answer on the first frame, but only for a chat whose folder is on this computer and that has nothing cached for it. The read still runs and replaces it. acpmux's trust gate is still the authority, so a refusal reads the folder again as before.Test:
newtab/agentHomeTrust.test.tsxcovers three cases, all with a read that never answers. An agent-home chat is trusted with no block on every frame, and the read is still made. Any other unread folder still waits. A remote chat at the same path, or a subfolder, gets no seed.Not changed here (findings, for follow-ups):
RESERVE_MS(2 s) when the tab has no folder and acpmux has not listed chats yet (NewTabScreen.tsxprojectPending). This is deliberate (Leo 2026-10-19: no "Choose folder" then flip).PendingModeuntil_acpmux/start_modeor the session's modes answer. The model catalog and the cmux.jsonagentPane.modelsarrive withmodels.catalog, not the handshake.Risk: small. A webview first-frame seed for one folder class, with acpmux's gate unchanged.
Leo-ask: ask-fa845ab0fd
🤖 Generated with Claude Code
Agent session: agent session
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Shows a no-project chat as trusted on the first frame instead of waiting for a settings-file read, so prompts no longer hold behind trust while
acp.trust.getruns.folderTrust.tsaddsagentHomeTrust(cwd), which returns acpmux's trusted answer for a direct child of~/Library/Application Support/cmux/agent-home.useFolderTrustAskseeds that answer on the first frame for local chats with nothing cached; the read still runs and replaces it, and acpmux's trust gate remains the authority.Written for commit 7fe8ab5. Summary will update on new commits.