fix: reserve projected load points and stage Claude credentials #974
No reviewers
Labels
No labels
burndown-2026-06
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agentic-os!974
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/tu89"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two commits: the shadow-home half of the user-scope projection work, and the #968 auth gap.
17d0e095// reserve the projected load points in the shadow homeThe shadow home symlinked each child of
.agentsand.claudeand linked every other host entry whole. That left~/.claude/CLAUDE.mdpointing at the host's all-roles COMPOSED document, so a role session read all eight role cards beside the one it was launched with.It also made home-scope projection unsafe for the other harnesses:
.codexand.configwere single symlinks, so writing.codex/AGENTS.mdunder the session home resolved through to the host file..codexand.config(with its goose and opencode children) are now staged the same way.agentsand.claudealready were, and every projected load point is reserved so no host copy is linked over it. Projection refuses foreign files, so a leftover link there fails the launch rather than being replaced.Behavior note:
.configbecomes a real directory of symlinks, so a new file written under~/.configinside a session lands in the session rather than the host. Existing entries still resolve to the host.ceaf441e// stage Claude credentials instead of starting logged outCloses #968.
--authaccepted--agent claudeand staged nothing: discovery looked only for~/.claude/.credentials.jsonand returned an empty projection when absent, so a launch composed the role, projected it, started Docker, and only then reportedNot logged in.On macOS that file is normally absent because Claude Code keeps the login in the Keychain, namespaced by a digest of
CLAUDE_CONFIG_DIR. Discovery now reads that record the way the harness names it and mounts it through a private temporary file, mirroring the Codex Keychain path.ANTHROPIC_API_KEY,ANTHROPIC_AUTH_TOKEN, andCLAUDE_CODE_OAUTH_TOKENcross by name for unattended runs.When none resolve, it fails before Docker starts and names the three ways forward, rather than surfacing after an image pull. That is the fail-closed option the issue called worth doing regardless of which credential path was chosen.
The container already copied
claude.jsonto~/.claude/.credentials.json, so only host discovery was missing. Newdocs/aos-claude-auth.mdmirrorsdocs/aos-codex-auth.md.Notes
The first commit pairs with agent-compose
native-home/968-user-scope-projection. They should land together: home-scope projection without this write-through guard would overwrite host files.Full
aos-clisuite green.