Skip to content

Claude Desktop does not display earlier session history for long conversations after multiple compacts #67434

Closed as not planned

Description

@ryan11njr

Description

In Claude Desktop, conversation history from earlier sessions is not displayed in any view mode for long conversations that have been compacted multiple times. The full data is preserved in local .jsonl files but is completely inaccessible through the Desktop UI.

Environment

  • Platform: Windows 11 (both machines)
  • Claude Desktop version: 1.11187.4.0
  • Claude Code CLI version: 2.1.159

Reproduction

I have a project with a long conversation spanning 9 separate sessions (via claude --resume), with multiple compacts performed throughout. The latest session shows:

  • 18 turns, 175 tool calls, 20h 3m, 166.0k tokens
  • Only 18 turns are visible in any Desktop view mode
  • All conversation history from earlier sessions (hundreds of turns) is missing from the UI
  • The data can be verified by reading the local .jsonl files under ~/.claude/projects/

Key observations

  1. Local data is intact: All session .jsonl files are fully preserved under ~/.claude/projects/. File sizes range from 61K to 3.6M, totaling the complete conversation history.

  2. claude --resume works correctly: Resuming any of the 9 sessions via CLI shows the full transcript for that session.

  3. Another computer does not exhibit this behavior: A different Windows 11 machine with the exact same Claude Desktop version displays conversation history correctly. The difference is that the other machine's conversations are shorter.

  4. Previously visible, now gone: Earlier compacts in this conversation preserved the history visibility in the UI. The disappearance happened after the conversation grew very large (166k+ tokens).

  5. No configuration differences: Both machines have identical config.json, claude_desktop_config.json, and developer_settings.json.

Expected behavior

Claude Desktop should display conversation history from earlier sessions in the UI, allowing users to review the full conversation without needing to read raw .jsonl files.

Actual behavior

Only 18 turns (from the most recent session) are visible in Claude Desktop. All earlier session history is inaccessible from the UI. The only way to access it is by reading local .jsonl files directly.

Workaround

Reading session .jsonl files from ~/.claude/projects/ or using claude --resume <session-id> in the CLI.

Activity

  1. BasedGPT commented on Jun 12, 2026

    @BasedGPT

    The comparison machine observation points to the metadata layer — same Desktop version, shorter conversations, earlier sessions still visible there. When I've seen this pattern, the transcript files are intact on disk but %APPDATA%\Claude\claude-code-sessions\ is missing entries for the affected sessions. Desktop's sidebar renders only what has a local_*.json metadata file pointing at a transcript; if the entries for your earlier 8 sessions aren't there, it can't show them regardless of whether the .jsonl files exist.

    Worth checking that directory first: %APPDATA%\Claude\claude-code-sessions\<account>\<org>\. If it has far fewer than 9 entries for this project, that's the gap.

    If that's what you find, I built a toolkit that handles exactly this — diagnose.py in claude-code-session-recovery maps both %APPDATA%\Claude\claude-code-sessions\ and ~\.claude\projects\ and tells you which sessions are in which state before writing anything. For orphaned transcripts (files on disk with no matching metadata), synth_session_metadata.py synthesises the local_*.json files. After a Desktop restart, those sessions should surface in the sidebar.

    BasedGPT/claude-code-session-recovery

    If it helps, a ⭐ on BasedGPT/claude-code-session-recovery is always appreciated.

  2. ryan11njr commented on Jun 12, 2026

    @ryan11njr
    Author

    Update: Root cause identified after deeper investigation

    I dug deeper into the local storage and found the actual mechanism — and it points to a more serious rendering bug than I initially described.

    How Desktop lists sessions (metadata layer)

    Claude Desktop tracks sessions via metadata files at:

    %LOCALAPPDATA%\Claude-3p\claude-code-sessions\<accountId>\<orgId>\local_<uuid>.json
    

    Each local_*.json has a cliSessionId field pointing to the real transcript in ~/.claude/projects/<encoded-cwd>/<sessionId>.jsonl. The sidebar only renders sessions that have a metadata file here.

    This explains why my CLI-resumed sessions (started via claude --resume, not from Desktop) didn't appear: they never got a local_*.json created. That part is consistent with the earlier comment — though note the correct path is %LOCALAPPDATA%\Claude-3p\..., not %APPDATA%\Claude\....

    But the metadata layer is NOT the real user-facing problem

    Even after I synthesized the missing metadata files (so all sessions showed up), the core issue remained: Desktop does not render the full transcript of a multi-compacted long conversation. I have since reverted those metadata changes because they created clutter (one sidebar entry per session) without solving the continuity problem.

    The actual bug: aggressive transcript truncation

    My latest session (ce854e81...) is a single .jsonl file. I inspected it directly:

    Metric Value
    Lines in .jsonl 631
    Real user turns 199
    Compaction/continuation points 4
    Turns shown in Desktop UI 18

    Desktop's summary/transcript view shows only 18 of 199 user turns. Worse, the .jsonl already contains the full continuity I expect — its first user message is literally:

    "This session is being continued from a previous conversation that ran out of context. The summary below..."

    So the prior sessions' content is already embedded in this single transcript as a continuation summary. The data for a continuous view exists. Desktop simply refuses to render it.

    User impact (severe)

    This is a serious usability regression for long-running work:

    • Loss of continuity: A multi-day, multi-session task (this one: 9 sessions, ~20h, 166k tokens, Zotero MCP integration work) becomes unreviewable in Desktop. I can only see the last handful of turns.
    • No way to verify past work: I cannot scroll back to check what was decided, modified, or diagnosed earlier — which is essential for long technical tasks.
    • The data is right there, intact, on disk — fully readable via claude --resume <id> or by parsing the .jsonl. Only the Desktop UI hides it.
    • Inconsistent with CLI: claude --resume shows the complete transcript for the same session. Desktop and CLI diverge on the same local data.

    What I'm asking for

    Please fix Desktop to render the full transcript of a session, including:

    1. All turns after every compaction point (currently only the last ~18 render).
    2. The continuation/summary blocks that represent prior sessions' content.

    This is urgent — it fundamentally breaks Desktop as a tool for long, serious engineering work. Users should never have to parse raw .jsonl files or drop to the CLI just to read their own conversation history.

    Happy to provide the session file or any additional diagnostics if helpful.

  3. github-actions commented on Jul 24, 2026

    @github-actions

    Closing for now — inactive for too long. Please open a new issue if this is still relevant.

  4. github-actions commented on Sep 19, 2026

    @github-actions

    This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.

  5. locked as resolved and limited conversation to collaborators on Sep 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:desktopbugSomething isn't workingplatform:windowsIssue specifically occurs on WindowsstaleIssue is inactive

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions