[BUG] Desktop app (SSH-remote to WSL2) history panel empty after restart — sessions exist on disk but never listed

Open 💬 0 comments Opened Jul 14, 2026 by hetalp08

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

  1. Open Claude Code Desktop on Windows and connect via SSH to a WSL2 Ubuntu host.
  2. Open any project folder on the remote and have a normal conversation (a few user + assistant turns).
  3. 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").

  1. Quit the Desktop app completely.
  2. Reopen the Desktop app, reconnect to the same SSH host, open the same project folder.
  3. Observe: the history / session picker is empty. The conversation from step 2 is not listed and cannot be resumed from the UI.
  4. 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.

View original on GitHub ↗