v0.39.0 — Stability and Analytics Polish
New features
Tokens and Cost Hero Cards — total tokens processed and total cost now sit at the top of the analytics page, above everything else. The headline numbers shouldn’t have to be scrolled to.
CLI Terminal Tab — a new tab for tmux-managed sessions. Env-probe discovery resolves TMUX_PANE from the CLI process’s environment, so attaching to an existing session “just works.”
Auto-Recap Blocks — when Claude Code emits an away_summary block (the recap it writes when you return after stepping away), claude-view now renders it as a proper system event in both chat and developer mode instead of falling through to a generic block.
Devices and Pairing Endpoints — server-side scaffolding for paired-device support: /api/devices, /api/pairing/qr, JWT-authenticated relay protocol, Supabase-backed device registry with PII-aware RLS isolation. The receiving mobile client lands in a follow-up.
Improvements
- No more freeze at 100+ closed sessions. Live Monitor’s reconciler cooldown is replaced with lazy sidecar recovery so the UI stays responsive even with hundreds of historical sessions on screen (#53, #54).
- Sidecar memory bounded. Per-session stream buffers now cap, with heap telemetry to catch regressions early — the slow leak under heavy load is fixed (#54).
- Blue-green search index migration. When the search index schema bumps, the previous version keeps serving queries while the new one builds in the background. No more “rebuilding index, please wait” on startup.
- Quieter chat mode. Hook noise and empty assistant blocks are hidden in chat mode for a cleaner conversation view.
- Worktree hooks fixed.
WorktreeCreateis a replacement hook — async observers were silently breakingisolation: worktree. Hooks now have explicit replacement-vs-observer taxonomy with a 3-layer defense. - Cleaner relay logs. WebSocket lazy-start stops spamming auth-rejected logs when nothing is paired.
- Pricing data updated. Opus 4.7 added with a boot-time drift detector to flag stale pricing tables.
- Six-month database rebuild landed. A multi-phase CQRS-style rewrite splits the writer hot path from the read path through
session_stats,session_flags, andsession_action_logtables, with astage_c_outboxfor reliable cross-table fanout. The legacysessionstable is gone. rustls-webpkisecurity bump — 0.103.12 → 0.103.13 (RUSTSEC-2026-0104).
Getting started
npx claude-view@latest