Skip to content

Complete Conversation Timelines for Every Session

· claude-view team

When you open an old Claude Code session in claude-view, you should see the same rich conversation timeline you get for live sessions. Until now, you didn’t.

The gap

claude-view renders conversations as a sequence of InteractionBlocks — visual units that represent Plans, Questions, tool calls, and responses. These blocks make it easy to scan a session at a glance: “here’s where the agent planned, here’s what it asked me, here’s where it ran the tests.”

The problem: Plan and Question blocks were only synthesized for sessions currently in memory. For any session that had ended — even from yesterday — those blocks were missing. You’d see a flat stream of tool calls and text, without the higher-level structure that makes sessions actually readable.

This wasn’t a small gap. Plans and Questions are the most informative blocks in a session. They’re where Claude explains what it’s about to do and why. Losing them from historical sessions meant losing the narrative thread.

What changed

v0.31.0 synthesizes InteractionBlocks from historical JSONL data during the indexing pass. When you open any session — from today or from three months ago — claude-view reconstructs the block structure from the raw event log.

The result: your full conversation timeline is complete, regardless of when the session happened. Plans appear where they were triggered. Questions appear where they were asked. The session reads like it did when it was live.

Accurate cost estimates

A separate fix in this release plugs a caching issue that was silently skewing token cost estimates. A one-hour cache window was causing cost display to drift from actual usage — you might see costs from an hour ago presented as current. This is now resolved, and system message rendering gaps are also fixed.

Dev reliability improvements

Four fixes landed for the development environment:

  • Crash-aware sidecar supervisornode --watch doesn’t handle crashes gracefully. The new supervisor detects crashes and restarts cleanly.
  • Orchestrator script — the 400-character inline concurrently command in the dev start script is replaced with a proper orchestrator. Easier to read, easier to debug.
  • Cleanup scriptdev-cleanup.sh now kills orphan processes, not just the ports they were using.
  • Sidecar ownership gateCLAUDE_VIEW_SIDECAR_EXTERNAL prevents the Rust server from spawning a second sidecar in dev mode. Previously, every cargo watch rebuild would kill the tsx watch process and replace it with a stale build, causing WebSocket failures that looked like FSM bugs.

These are internal improvements — they don’t affect the installed npx claude-view experience, only the development workflow.

What’s next

  • Deeper historical reconstruction — filling more block types from JSONL
  • Improved cost breakdown by session phase
  • Timeline scrubbing for long sessions

Update now

Terminal window
npx claude-view@latest

Open any old session and check the timeline. Plans and Questions should now appear throughout.