| Ticket Hash: | 53025a3790b47389af43767ffeb01f2d3999084d | ||
| Title: | A fresh Claude sign-in asks for folder trust at a session's first start, and the session waits on a terminal | ||
| Status: | Open | Type: | Code_Defect |
| Severity: | Normal | Priority: | Medium |
| Subsystem: | rootfs | Resolution: | |
| Last Modified: |
2026-11-02 02:33:10 9.2 days ago |
Created: |
2026-11-02 02:33:10 9.2 days ago |
| Version Found In: | b297c80b37 | ||
| Description: | ||||
|
Claude keeps its trust per folder in .claude.json. ocx-rootfs/build-rootfs.cr:268 and ocx-node/Dockerfile:39 both seed that file as {}, so the first session after a fresh sign-in stops at the trust question until someone joins its terminal. workspace_at makes that once rather than each run (docs/protocol-v1-examples.md, USAGE.md), which is why it was accepted, but on a new machine it still needs a person, and it says nothing on the record. Seen in this run's own .claude.json on x86-1: /workspace/tree trust=true, kept from an earlier answer.
Change, as data rather than code (KEEP.md, decision 40): the seed holds {"projects":{"/workspace/tree":{"hasTrustDialogAccepted":true}}}. Not tried: whether /login keeps that entry, and the key is Claude's own, not a published interface, so a Claude update could drop it. Accepting trust ahead of time is the maintainer's call: a session already runs with --dangerously-skip-permissions inside its sandbox, so it is expected to add little, and it covers whatever a checkout at that path holds. Passes when: a folder built and signed in fresh starts a session that answers with no one at its terminal. Do it with or after the ticket on .claude.json, which moves this file. | ||||