[BUG] Desktop-hosted sessions auto-archive on end since 2026-07-19, making them invisible in the mobile Code list
What happened
Since a desktop app update installed 2026-07-19, every desktop-hosted Claude Code session is archived automatically when it ends. Because the iOS/mobile Code list only shows status: active, this makes all Mac-desktop-originated chats disappear from iPhone/web shortly after they finish.
Before 07-19 these same sessions stayed active indefinitely and remained listed on every device (rendering as Disconnected · <repo>). Sessions hosted by a claude remote-control daemon are not affected.
Evidence
Desktop-hosted sessions (config.origin: claude_code_cli, empty environment_id), counted from GET /v1/code/sessions:
| Window | active | archived |
|---|---|---|
| Jul 2–4 | 28 | 1 |
| Jul 11 | 18 | 9 |
| Jul 17–18 | 12 | 1 |
| Jul 20 onward | 2 | 58 |
The app update installed at 2026-07-19 15:02 local (per the Squirrel/ShipIt log) is the only correlating event. The same update also flipped these sessions' config.origin from null to claude_code_cli.
The last event on every affected session is identical:
event_type: control_request
payload.request: { "subtype": "end_session", "reason": "archived" }
source: client
Sampled 6 independently archived sessions — all six show exactly this. It fires per-session as each chat ends, and also in bulk (all open sessions at the same second) when the app quits for an update or a reboot.
Impact
Mac-as-host workflows break: with the Mac as the single host and phone/web as thin clients, a day's work becomes invisible from mobile as soon as each chat ends. Nothing is lost — transcripts are intact server-side — but they are unreachable from the mobile list, and there is no unarchive affordance in the desktop UI (#62428, #46631, #30869, #67835, #38234).
Expected
Desktop-hosted sessions should remain active when they end, as they did before 2026-07-19 — or archiving should be opt-in (#60043 requests the same).
Workaround
There is a working server-side unarchive endpoint, though it appears undocumented and the open issues above assume none exists:
POST /v1/code/sessions/<session_id>/unarchive -> 200
(PATCH/POST with {"status":"active"} both return 405.) Restoring 58 sessions this way brought them all back on iPhone immediately, and none re-archived — so #57586's "re-archives after ~1s" does not appear to affect the API path.
Editing isArchived in the local claude-code-sessions/.../local_<id>.json (the workaround suggested elsewhere) only fixes the desktop's local view, not the server status the mobile app reads.
Environment
- Claude Code CLI 2.1.220
- Claude desktop app 1.24012.9 (regression arrived with the build installed 2026-07-19)
- macOS 26 (Darwin 25.5.0), Apple Silicon
- Plan: Max
Possibly related
#57586 (unarchive snaps back ~1s), #59449 (active session archived every ~5 min), #60043 (auto-archive, no opt-out), #65955 (session on desktop absent on iPhone), #67835 (archive is one-way)
3 Comments
Confirming this also happens on Windows, not just macOS — same symptom:
+1 on this — matches exactly, would love to see the fix (or at minimum an unarchive button in the UI) ship.
I am also unable to view my Windows desktop session from my iPhone. It should still be actively running but there are no visible updates since hitting my last usage limit. That limit reset hours ago.
Same issue here, on Windows 11 Pro (desktop app 2.42304.0.0, Claude Code 2.1.301).
Requested CCR archive of … Remote Control bridge session(s)when I archived a session manually, so the automatic archiving isn't coming from the desktop app's own archive action. It seems to happen server-side when the session ends or the app quits, which matches what's described above.Expected: desktop-hosted sessions stay
activeand visible on mobile/web (shown as disconnected), as before, or archiving should be opt-in.