Feature Request: Persistent conversation history with infinite scroll (like Cursor)

Resolved 💬 4 comments Opened Apr 8, 2026 by lssnow73 Closed May 21, 2026

Summary

When Claude Code's context window is full, older messages are compressed/summarized and removed from the UI. Users can no longer scroll up to view earlier parts of the conversation.

Cursor IDE handles this differently — it stores conversation history separately from the active context, allowing users to scroll through the full chat history regardless of context window limits.

Current Behavior

  • When the context window is exhausted, Claude Code auto-summarizes older messages
  • The summarized messages disappear from the chat UI entirely
  • Users can only see the active context window worth of messages on screen
  • Full history is saved to .jsonl files locally but is not surfaced in the UI

Expected Behavior

  • All conversation messages should remain visible in the UI via scrolling, even after context compression occurs
  • The underlying context sent to the model can still be compressed/summarized (this is fine and expected)
  • The UI display layer should be decoupled from the model context — store and render the full message log independently

Why This Matters

  • Users lose visibility into what was discussed, what code was written, and what decisions were made earlier in a long session
  • This is especially painful during large implementation tasks spanning many files and decisions
  • Cursor already implements this UX pattern — users familiar with Cursor expect the same behavior in Claude Code
  • The raw data already exists in .jsonl files; it just needs to be surfaced in the UI

Proposed Solution

Decouple the chat UI history from the model context window:

  1. Store all messages to disk as they occur (already done via .jsonl — data exists)
  2. Render messages from the persisted log, not from the active context
  3. When context compression happens, the model gets the summarized context but the UI continues showing the full history from disk
  4. Add a visual indicator (e.g. a subtle divider or label) showing where context compression occurred, so users understand which messages are "in context" vs. historical

References

  • Cursor: full conversation history is persisted and scrollable regardless of model context limits
  • Claude Code .jsonl files: ~/.claude/projects/<project>/**.jsonl — the data is already being saved, just not shown in the UI

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗