[BUG] Desktop app (SSH-remote to WSL2) history panel empty after restart — sessions exist on disk but never listed
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?
Using Claude Code Desktop on Windows connected via SSH to WSL2 Ubuntu. Every time I quit the Desktop app and reopen it, the history / session picker is empty — none of my previous conversations for the same project are listed, even though the session files are being written correctly to disk on the WSL side.
On disk (~/.claude/projects/<project>/) I have ~180 valid .jsonl session files spanning about a month of daily use. Nearly all of them contain a proper ai-title or custom-title entry. Files are owned by me, perms are -rw-------, and they load fine when I use /resume in the terminal CLI — so the data is intact, only the Desktop UI fails to list them.
This started around 2026-06-27 with remote CLI version 2.1.187 (the version that introduced the new session-file format beginning with queue-operation entries). Every version since — 2.1.187, 2.1.197, 2.1.202, 2.1.205, 2.1.207 — has the same problem. Version 2.1.181 was the last one where restart-and-resume worked normally.
Environment:
- Claude Code Desktop on Windows, SSH remote to WSL2 (Ubuntu)
- Remote CLI (WSL): 2.1.207 (also reproduced on 2.1.205 / 2.1.202 / 2.1.197 / 2.1.187)
- Last known-good remote CLI: 2.1.181
What Should Happen?
When I reopen the Desktop app and reconnect to the same SSH host + project directory, the history / session picker should list all my previous conversations for that project (the .jsonl files under ~/.claude/projects/<encoded-cwd>/), sorted most-recent-first, with their titles, so I can resume any of them — same behaviour that worked up to CLI 2.1.181 and same behaviour the terminal /resume picker still gives today.
Error Messages/Logs
No error messages or crash logs — the Desktop app opens normally, connects to SSH normally, and simply shows an empty history / session picker for the project. Nothing shown as failed in the UI.
Session files on disk look healthy: they begin with `queue-operation` entries and end with an `ai-title` or `custom-title` line (new format introduced in ~2.1.187). The terminal CLI `/resume` reads them fine, so no corruption.
Steps to Reproduce
- Open Claude Code Desktop on Windows and connect via SSH to a WSL2 Ubuntu host.
- Open any project folder on the remote and have a normal conversation (a few user + assistant turns).
- On the WSL side, confirm a new session file was created at:
~/.claude/projects/<encoded-cwd>/<uuid>.jsonl
and that it contains a line with "type":"ai-title" (or "custom-title").
- Quit the Desktop app completely.
- Reopen the Desktop app, reconnect to the same SSH host, open the same project folder.
- Observe: the history / session picker is empty. The conversation from step 2 is not listed and cannot be resumed from the UI.
- Workaround confirming the data is intact: in the WSL shell run
claude, then press Ctrl+R (or type/resume). All previous sessions are listed with their titles and can be resumed normally.
Note: the bug started around 2026-06-27 with remote CLI 2.1.187 — the version that changed the on-disk session-file format to start with queue-operation entries. Every remote CLI version from 2.1.187 through 2.1.207 has the same problem. 2.1.181 was the last version where the Desktop history panel worked after a restart.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
2.1.181
Claude Code Version
2.1.207 (Claude Code)
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
WSL (Windows Subsystem for Linux)
Additional Information
Setup detail that doesn't fit the dropdowns cleanly:
- The client is the Claude Code Desktop app running on Windows.
- It connects over SSH to a WSL2 Ubuntu host where the actual CLI runs and the session files live (~/.claude/projects/<encoded-cwd>/*.jsonl).
- So "Operating System = Linux" refers to the remote where the bug shows up on disk / where /resume works; the Desktop app itself is on Windows.
- No terminal is involved for the reproduction — the bug is in the Desktop app's own history / session picker.
Remote CLI versions tested (all broken): 2.1.207, 2.1.205, 2.1.202, 2.1.197, 2.1.187.
Last remote CLI where the Desktop history panel worked after restart: 2.1.181.
Transition point ≈ 2026-06-27 — the same version that introduced the new session-file format starting with queue-operation entries and ending with ai-title / custom-title lines.
Data is intact — the terminal CLI /resume (Ctrl+R) lists every session correctly and resumes any of them. Only the Desktop app's own history panel is empty.
Happy to attach a screenshot of the empty Desktop history panel + a sample session-file head/tail if useful.