---
title: v0.24.0 — Multi-Session Chat
date: 2026-03-24
version: v0.24.0
---

## New features

**Multi-Session Chat (VSCode-style tabs)** — open multiple Claude Code sessions side-by-side in a dockview tabbed layout. Drag tabs to split horizontally or vertically. Each panel maintains its own connection, scroll position, and state.

**ConversationBlock Pipeline** — a new Rust-native block accumulator parses JSONL into structured conversation blocks (user, assistant, progress, system, notice, turn boundary). Served via `?format=block` REST endpoint and real-time WS block mode.

**FSM Chat Panel** — chat sessions are driven by a finite state machine with explicit phases (nobody → acquiring → active), typed events, and deterministic transitions. Eliminates an entire class of race conditions between connection, history load, and live streaming.

**Developer Mode Overhaul** — ToolCard, EventCard, CategoryFilterBar, and ThinkingIndicator replace the old raw-JSON terminal view. Toggle between Chat and Developer modes per session.

**Session Source Detection** — sessions are automatically classified by launch source (Terminal, IDE, Agent SDK) via parent process inspection. SourceBadge shown across all three pages.

**Message Threading** — parentUuid propagation enables indented sub-agent message display in ConversationThread.

**Share Viewer Migration** — the share viewer now uses the same ConversationThread + ConversationBlock rendering as the main app.

## Improvements

- Direct TCP sidecar connection (port 3001) replaces Unix socket relay
- Worktree-state and forkedFrom JSONL types fully handled in parser
- Live session sidebar groups by urgency with source badges
- Sub-agent block view with WS error surfacing
- Sidebar project deduplication via real path GROUP BY
- EventSource auto-retry on transient SSE connection errors
- Loading indicator while fetching history blocks
- PII-check pre-commit hook
- ~5,800 lines of deprecated code removed (RichPane, ActionLogTab, ComparisonGallery)
- Evidence audit baseline updated for new Claude CLI fields

## Getting started

```bash
npx claude-view@latest
```
