Stability Fixes, Faster Search, and Tokens at the Top
You opened claude-view, scrolled through 100+ closed sessions in the Live Monitor, and watched it freeze. Or you waited through a long startup while the search index rebuilt. Or you wondered why your Mac’s fan spun up after claude-view ran for an afternoon.
v0.39.0 is the stability release. Three foundational fixes that you’ll feel every day, plus an analytics tweak that surfaces the numbers you actually look at.
The problem with 100 closed sessions
The Live Monitor reconciler — the loop that synchronizes session state between the sidecar and the database — used to bail out when too many sessions piled up. It hit a cooldown, scheduled a retry, and in the meantime the UI stopped responding to clicks. Open enough closed sessions and you’d see the panel just freeze.
We replaced the cooldown with lazy sidecar recovery. Sessions are reconciled on-demand when you actually look at them, not eagerly across the entire history. The 100-session ceiling is gone. We tested with thousands.
The companion fix is bounded sidecar memory. Each session’s stream buffer used to grow without a cap as messages accumulated. Heavy users — running Claude Code 8 hours a day with multiple parallel agents — would notice claude-view’s RSS climbing through the day. The cap is now enforced per-session, with heap telemetry exposed so we can catch regressions before users see them.
Blue-green search index migration
The search index uses Tantivy, which has a versioned schema. When the schema changes (we add a field, change an analyzer, etc.), the old index isn’t readable by the new code. Older versions handled this by rebuilding from scratch on startup — which meant a multi-second freeze the first time you launched the new version.
v0.39.0 ships blue-green index migration: when claude-view detects a schema bump, it keeps serving queries from the previous-version index while building the new version at v{N}/ in the background. When the new index is ready, it swaps in atomically. No startup pause, no broken search.
This was foundational work for shipping schema changes safely going forward — we can iterate on search relevance without paying a perceived-startup-time tax.
Tokens and cost at the top
The analytics page used to lead with a heatmap, then a project breakdown, then activity, then somewhere down the page: total tokens, total cost. Those are the numbers you actually look at — “how much did I spend last week?” — and they were buried.
v0.39.0 moves tokens processed and total cost to the top of the page, above the heatmap. The hero cards adapt to time-range filters. If you select “last 7 days” they show the 7-day numbers. If you select “all time” you see the lifetime totals.
There’s also a date-range caption that says exactly what window the numbers represent, so you don’t have to guess what “last 7 days” means against a weekend or a partial week.
Under the hood: a six-month database rebuild
The biggest internal change in v0.39.0 doesn’t have a UI — it’s a multi-phase CQRS-style rewrite of the database write path. The old sessions table did everything: metadata, action history, derived stats, all in one row. Concurrent writers fought for the same row. Schema migrations were painful.
The rebuild splits this into:
session_stats— the canonical writer-owned row, derived from JSONL parsingsession_flags— user actions (archive, classify, dismiss) that flip independentlysession_action_log— append-only event log for audit and replaystage_c_outbox— reliable cross-table fanout for derived rollups- 15 rollup tables — pre-aggregated stats so dashboard reads don’t scan everything
The legacy sessions table is gone, retired through dual-write phases, shadow parity monitors, and a drift detector that runs continuously. We landed it as 7 phases over six months because retiring a hot table without breaking anything is the kind of work that has to be done patiently.
You won’t see this directly. You’ll feel it as: dashboard pages load faster, the writer doesn’t stall, and adding new aggregations is a derive(RollupTable) away.
What’s next
- Mobile pairing client. v0.39.0 ships the server-side and Settings UI for pairing a phone via QR code. The receiving mobile app is the next milestone.
- Plan workflows. Pairing the existing plan blocks with editable plan TODOs so you can drive a session from a written plan.
- Faster cold starts. With the database rebuild done, the next bottleneck is the indexer — and we have ideas.
Update now
npx claude-view@latestIf you’ve been holding off because of the 100-session freeze, this is the release to come back for. Open the analytics page first — the new hero cards are the smallest visible change but the one we use most.