[BUG] Desktop app: chat pane silently omits a contiguous ~25h window of turns (local transcript is complete)
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?
The desktop app's chat pane renders the beginning and the most recent part of a long-running Claude Code conversation, but silently omits a contiguous ~25-hour window of turns in the middle. There is no gap indicator, no error, and no "load more" control — the list jumps straight from the last pre-gap turn to the first post-gap turn, so the omission is invisible unless you already know that work happened.
The data is not lost: Claude Code's own local transcript (~/.claude/projects/<project>/<session-id>.jsonl) is continuous and contains every turn in the window.
Counting real user turns (excluding system notifications and local slash commands) in the affected session:
| | user turns | range (UTC) |
|---|---|---|
| rendered (head) | 4 | 2026-08-13T04:45:45Z → 2026-08-13T05:03:46Z |
| omitted | 54 | 2026-08-14T02:28:09Z → 2026-08-15T03:52:20Z |
| rendered (tail) | 7+ | 2026-08-18T02:25:25Z → present |
Persists across app quit/relaunch and a full machine reboot. The app reports it is up to date.
Impact: the chat pane is the primary review surface, so a silent omission reads as data loss. A full day of decisions and cost-incurring runs appeared to have vanished, and there is no way to tell from the UI whether a conversation is being shown completely.
What Should Happen?
Either all turns render, or the app explicitly marks any range it could not load (e.g. "54 messages not loaded — retry") instead of splicing them out. A conversation should never look complete when it isn't.
Error Messages/Logs
None. No error, warning, or placeholder appears anywhere in the UI — the omission is entirely silent. That is the core of this report.
Steps to Reproduce
- Run one long Claude Code session in the desktop app, in a project directory, spanning several days.
- During that session, send some turns from mobile on the same conversation. (The omitted window here contains turns from BOTH desktop and mobile — e.g. /model slash commands inside the window were typed on the desktop — so this is not "the mobile turns are missing".)
- Let a context-compaction ("continued from a previous conversation") boundary occur. Note: in this case the single compaction boundary (2026-08-14T13:57Z) sits INSIDE the omitted window rather than at either edge, so it does not line up with the gap boundaries and may not be the trigger.
- Reopen the conversation in the desktop app.
Observed: turns inside a contiguous window are absent, with no indication.
Confirming the data exists locally (per-hour record counts are continuous across the omitted window):
grep -o '"timestamp":"2026-08-[0-9T:]*' <session>.jsonl | cut -c15-26 | sort | uniq -c
Further evidence: artifacts published during the omitted window are current and load fine, so the server-side record of that work is intact — this looks specific to the conversation message sync/render path. The pane is backed by ~/Library/Application Support/Claude/IndexedDB/https_claude.ai_0.indexeddb.leveldb (the synced conversation store) rather than the local .jsonl, which is consistent with the local transcript being complete while the pane is not.
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
26.5.2
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other
Additional Information
- Claude desktop app 1.32352.0 on macOS 15.5 (Darwin 25.5.0). This is the app's built-in Claude Code pane, not a terminal session — the Terminal/Shell field above has no matching option.
- Suggested fixes:
- Never omit silently — render a placeholder for any range that fails to load.
- Provide a way to force a full re-sync of a conversation from the server.
- Fall back to the local Claude Code .jsonl when the synced store is incomplete; the complete data is already on disk.
- Session ID and project path are omitted here because this is a public issue. Happy to provide them privately.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗