You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: Per-account Claude folder keeps its own sessions/, so Claude Code peer messaging splits in two #35957
Orca 1.4.227, macOS arm64. Since Orca launches Claude with CLAUDE_CONFIG_DIR=~/Library/Application Support/orca/claude-profiles/<account id>/home, sessions started that way register in <profile>/home/sessions/, while sessions started before (or outside Orca) register in ~/.claude/sessions/.
Claude Code's peer discovery (ListAgents, SendMessage to a session name) reads only its own config dir's sessions/. So a coordinator session started before the account switch and the workers it starts afterwards with orca worktree create --agent claude cannot see or message each other: SendMessage fails with "no agent named … is reachable" in both directions. We fall back to orca terminal send / terminal read.
The profile's other shared folders (projects, session-env, file-history, shell-snapshots, todos, paste-cache, tasks, plans, transcripts, history.jsonl, plugins, skills) link to ~/.claude. sessions doesn't, and linking it by hand doesn't hold: the profile sync removes a sessions symlink that points at ~/.claude/sessions (it reports synced).
Expected
Sessions on the same machine and user can find each other whether they use ~/.claude or an Orca profile, or at least Orca documents that per-account sessions/ isolates peer messaging, and says how to bring older sessions over (restarting them with the profile's CLAUDE_CONFIG_DIR).
Repro
Start a Claude session in an Orca terminal before Orca's per-account folder exists (or with CLAUDE_CONFIG_DIR unset).
After Orca switches to per-account folders, run orca worktree create --agent claude ... from that session.
In the new worker, ListAgents doesn't list the first session, and SendMessage to its name fails.
Related: #29870 (running sessions keep the old account), #33170 (per-account folder links).
Confirmed against the source and happy to take this. The per-account CLAUDE_CONFIG_DIR split means a coordinator outside Orca's profile layout and Orca-launched workers register their peer sessions in different sessions/ roots, and Claude's peer discovery only reads its own config dir — so neither side can see the other. I'll investigate whether discovery can be taught to consult both roots (with the version-caveat your report mentions) and open a PR with a failing-first test.
Heads-up on ordering: I claimed this at 15:58 and had a working fix, but @brennanb2025 was assigned at 16:02 — deferring to the assignee.
Leaving what I found in case it saves some digging:
Root cause is on Orca's side, not the CLI. Claude's peer discovery reads only <configDir>/sessions (verified against CLI 2.1.312; no env override for the registry path). Orca's profile surface list in src/main/claude-accounts/claude-profile-history.ts explicitly excludes sessions, and since the Re-land Claude per-account folders (#24434, #26405) with the upgrade and proxy fixes #26801 re-land (Oct 9) unlinkSharedSessions actively tears down any legacy link into the default home — that's the "sync removes my manual symlink" the report mentions. The one-line rationale there ("live-process registry belongs to each folder's daemon") appears to have no failure record behind it; the pre-revert stack (fix(claude): activate account profiles and remove credential replay (Step 4 of 4) #24434) shared sessions without per-account leakage.
Fix sketch (+29/−41, on fix/claude-peer-discovery-config-split, c1ce3c7004, for reference only): include sessions in the shared list (it's PID-keyed machine-local process metadata, not account state — credentials/settings/MCP stay per-account), drop unlinkSharedSessions, keep seed provisioning's exclusion so new profiles don't inherit stale registries. Failing-first tests: legacy link preserved, real-dir merge gives two-way visibility, later writes propagate (16/16 in claude-profile-history.test.ts; claude-accounts package 250 passed).
Happy to hand the branch over or close on request.
Activity
ggbdpq commentedon Oct 29, 2026
Confirmed against the source and happy to take this. The per-account
CLAUDE_CONFIG_DIRsplit means a coordinator outside Orca's profile layout and Orca-launched workers register their peer sessions in differentsessions/roots, and Claude's peer discovery only reads its own config dir — so neither side can see the other. I'll investigate whether discovery can be taught to consult both roots (with the version-caveat your report mentions) and open a PR with a failing-first test.ggbdpq commentedon Oct 29, 2026
Heads-up on ordering: I claimed this at 15:58 and had a working fix, but @brennanb2025 was assigned at 16:02 — deferring to the assignee.
Leaving what I found in case it saves some digging:
<configDir>/sessions(verified against CLI 2.1.312; no env override for the registry path). Orca's profile surface list insrc/main/claude-accounts/claude-profile-history.tsexplicitly excludessessions, and since the Re-land Claude per-account folders (#24434, #26405) with the upgrade and proxy fixes #26801 re-land (Oct 9)unlinkSharedSessionsactively tears down any legacy link into the default home — that's the "sync removes my manual symlink" the report mentions. The one-line rationale there ("live-process registry belongs to each folder's daemon") appears to have no failure record behind it; the pre-revert stack (fix(claude): activate account profiles and remove credential replay (Step 4 of 4) #24434) sharedsessionswithout per-account leakage.c1ce3c7004, for reference only): includesessionsin the shared list (it's PID-keyed machine-local process metadata, not account state — credentials/settings/MCP stay per-account), dropunlinkSharedSessions, keep seed provisioning's exclusion so new profiles don't inherit stale registries. Failing-first tests: legacy link preserved, real-dir merge gives two-way visibility, later writes propagate (16/16 inclaude-profile-history.test.ts; claude-accounts package 250 passed).Happy to hand the branch over or close on request.