Desktop: /cd mid-session splits transcript across project dirs — "No conversation found with session ID"
Bug
After using /cd to change the working directory mid-session, Claude Code Desktop can no longer find the conversation. Sending the next message shows:
Try sending your message again. No conversation found with session ID: <session-id>
This is a totally broken experience from the user's side — the active conversation appears gone even though the session is still running and responding.
Environment
- Claude Code 2.1.214 (Desktop + CLI), macOS 26.5.2 (darwin 25.5.0)
- Session started in project A (
~/Documents/GitHub/vex_anyfling), then/cd ../colton-gamesmid-session
What's on disk
The session record was split across the per-project transcript dirs:
~/.claude/projects/<project-B>/<session-id>.jsonl— the full transcript (~3.4 MB, actively appended after the move)~/.claude/projects/<project-A>/<session-id>.jsonl— a stale 4-line metadata stub (onlycustom-title,ai-title,mode, andpr-linkrecords) still being written minutes after the move
Desktop apparently resolves the session via the stale stub in project A, where the conversation body doesn't exist, and errors.
Workaround
Deleting the stub file from project A's directory makes the session resolve only to project B, and Desktop works again. (The full transcript in project B already contained all the metadata records — the stub was fully redundant.)
Expected
A directory move done in one surface should just magically reflect in the other. CLI and Desktop share the same session, so /cd in the CLI should atomically migrate (or alias) the session record and Desktop should keep working with zero user-visible errors — no split transcript, no stale metadata writes to the old project dir, no "No conversation found" on the next message. The user should never have to know sessions are stored per-project-directory at all.