[Feature Request] Add fallback to local Claude Code session when remote bridge disconnects
Bug Description
Title: Claude Desktop: bridged Remote Control session can't fall back to local when the bridge dies
Summary
When a Remote Control session in Claude Desktop loses its bridge (the local claude remote-control server crashes, the machine sleeps, network blip, etc.), the tab shows "Remote Control disconnected — bridged Claude Code process stopped responding mid-turn" and becomes permanently unrecoverable. Reopening the tab, restarting the app, or rebooting the machine doesn't help — the tab keeps trying to reconnect to a server that no longer exists.
The frustrating part
The session's full JSONL history is intact on local disk at ~/.claude/projects/<sanitized-cwd>/<session-id>.jsonl. The data isn't lost — only the UI's path to it is. The only way to keep working is to open a separate Claude Desktop window (or terminal) pointing at the original project folder and run /resume <session-id> manually. From the user's point of view this looks like the conversation died.
Repro
Run claude remote-control in a project folder.
Connect from Claude Desktop / claude.ai/code.
Kill the local claude remote-control process (or let it crash, or close its terminal).
The bridged tab shows the disconnect error and never recovers, even after relaunching Claude Desktop or rebooting.
Suggested fix
When the bridge dies, the bridged tab should offer a one-click "Continue locally" action that reopens the same session in a new local Claude Desktop tab via /resume <session-id> against the original cwd. Everything needed (session ID, original cwd) is already known to the UI at disconnect time, and the JSONL is on disk.
Environment
Claude Desktop on Windows 11, claude-code 2.1.121.
Environment Info
- Platform: win32
- Terminal: WarpTerminal
- Version: 2.1.121
- Feedback ID: c1174111-0eda-46b7-8a93-e57600518015
Errors
[{"error":"SyntaxError: JSON Parse error: Unable to parse JSON string\n at <parse> (:0)\n at parse (unknown)\n at vq$ (B:/~BUN/root/src/entrypoints/cli.js:171:10030)\n at _ (B:/~BUN/root/src/entrypoints/cli.js:131:19158)\n at <anonymous> (B:/~BUN/root/src/entrypoints/cli.js:173:1422)\n at LUH (B:/~BUN/root/src/entrypoints/cli.js:2825:33624)\n at qW (B:/~BUN/root/src/entrypoints/cli.js:2825:29301)\n at IZH (B:/~BUN/root/src/entrypoints/cli.js:2825:30924)\n at <anonymous> (B:/~BUN/root/src/entrypoints/cli.js:18993:1307)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-05-02T12:32:28.892Z"}]This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗