[BUG] /desktop on a terminal session with Remote Control on leaves two Desktop sidebar rows for one conversation
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
A session started in the terminal with Remote Control on shows in the Desktop app's Code sidebar as a Remote Control row. After I move that same conversation into Desktop with /desktop, the sidebar lists the one conversation twice:
- a new local Desktop row, with Remote Control off
- the old Remote Control row that the terminal session registered
The two rows keep independent titles. Renaming one does not rename the other, so they read as two unrelated sessions. In one case the rows ended up with two completely different names for the same conversation.
What I checked on disk for two affected sessions:
- There is one transcript per conversation, and it records a single
bridge-sessionid from start to finish. No second Remote Control session was created. - Desktop's registry record for the moved session (
local_<uuid>, whosecliSessionIdequals the transcript id) has nobridgeSessionIdsfield, and the app reports Remote Control as off for it. So Desktop made a fresh local row and did not adopt the Remote Control session the terminal had already registered. - The transcript switches from entrypoint
clitoclaude-desktopat the hand-off, so it is the same conversation continuing, not a fork.
What Should Happen?
One row per conversation. The Remote Control docs say that resuming a conversation that had Remote Control on in Desktop reattaches it to the existing claude.ai session rather than adding another entry to the session list. Either the Desktop row should adopt the existing Remote Control session, or the old Remote Control row should be merged or archived when the conversation moves.
Error Messages/Logs
None. Nothing is shown at the hand-off.
Steps to Reproduce
- Set
"remoteControlAtStartup": truein~/.claude/settings.json. - Start
claudein a terminal in any project and send a prompt. The session appears in the Desktop app's Code sidebar as a Remote Control session. - Run
/desktopin that terminal session. It opens in Desktop and the CLI exits. - Look at the Desktop sidebar: the conversation is listed twice, once as the local session and once as the Remote Control session.
- Rename either row. The other keeps its old title.
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.296 (Claude Code) in the terminal; Claude Desktop 2.31226.1 with bundled claude-code 2.1.295
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other
Additional Information
macOS 14.4.1, claude.ai subscription login, fish shell.
Workarounds: archive the leftover Remote Control row by hand, or turn remoteControlAtStartup off so terminal sessions never register one.
Possibly related, but not the same report:
- #99769: the reverse direction, where a Desktop session resumed in the terminal leaves a dead Remote Control row
- #101326: Desktop and CLI keep separate session lists
- #91392: one session shown under several independently generated names
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗