Desktop app: input typed into a Windows session executes in an unrelated macOS session (cross-machine session mix-up)
Summary
Input typed into one Claude Code desktop-app session on a Windows machine executes in, and is displayed inside, a different, unrelated session on a macOS machine. The macOS session's list does not contain the Windows session. Commands typed on Windows ran on the Mac and reported the Mac's checkout, which nearly corrupted the user's understanding of a git repository's state across two machines.
Environment
- Claude Code 2.1.247, desktop app on both machines, same account.
- Machine A: macOS (Darwin 25.6.0), host
Mac, sessionlocal_fee0634c-6124-4544-b69b-b653bf4fc0e4, title "Phase 3B implementation", created 2026-09-02 04:26 UTC, cwd/Users/bart_1/dev/repo/gemini/tabletop_5e, model claude-fable-5-1. - Machine B: Windows, desktop app, a session titled "Device test setup" created roughly a week earlier, used for weeks only to pull a git repo repeatedly during testing on Windows.
What happened
- On 2026-09-02, while session A was active on the Mac, the user typed "Pull the latest from GitHub" into the Windows app's session B. The pull executed on the Mac, in the Mac checkout, and reported "Already up to date" for the Mac repo. Nothing ran on Windows.
- The user rebooted the Windows machine and restarted the app. Session B on Windows now shows session A's entire transcript, under B's own title ("Device test setup") and with B's own sidebar history (which lists sessions the Mac does not have, e.g. "Build 70 assembly", Aug 28).
- From the Mac,
list_sessionsshows no session titled "Device test setup"; every listed session is Mac-local (local_…, Mac cwd). - Decisive test: the user typed
hostnameinto the Windows window (session B). The command executed on the Mac and returnedMac/Darwin, and the output appeared in both windows.
So two distinct session records, one per machine, are rendering one transcript, and input entered into the Windows record is routed to the Mac session's executor.
Expected
A session is bound to the machine and directory it was created in. A session created on Windows should execute on Windows; a session created on macOS should never receive input typed into a different session's window on another machine. At minimum the app should show unambiguously which machine will execute a message before it is sent.
Impact
Severe for anyone doing cross-platform work: "pull the latest" typed on Windows silently ran on the Mac, so the user believed the Windows checkout was current when it had not been touched. Any destructive command would have run on the wrong machine.
Evidence available
Both session transcripts (~/.claude/projects/... on each machine), screenshots of both windows showing the same transcript under different titles and sidebars, and the hostname result. The Windows session id can be supplied on request.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗