Files
pxpipe/tests
teamchong b5d768fcdc dashboard: sessions UI + stats panel + smooth updates + cleanup
Pivot from prior CLI subcommands (stats, sessions) to dashboard-based UI.
bin/cli.js becomes a minimal proxy starter; all functionality lives at
http://127.0.0.1:47821/.

New endpoints:
  GET  /api/sessions.json           — session list + Claude Code mapping
  GET  /api/sessions/:id.json       — session detail (bodies redacted by default)
  POST /api/sessions/prune          — dry-run-first cleanup with atomic rewrite
  GET  /api/disk.json               — events.jsonl + 4xx-bodies disk usage
  GET  /api/stats.json              — full-history aggregate (replaces CLI 'stats')
  GET  /sessions/:id                — HTML detail page

Dashboard HTML extended with sessions panel + stats panel + cleanup panel.
Smooth-poll: 2s tick for legacy live counters, 5s tick for sessions/stats/disk.
Session rows diff-rendered (no full-table flash). Destructive actions show
window.confirm() with dry-run preview of impact.

Session mapping: synthetic ID from first_user_sha8 (already on every event)
+ opportunistic enrichment by fingerprinting against ~/.claude/projects/*.jsonl.
Falls back gracefully if Claude Code's session dir is missing.

Atomic events.jsonl rewrite (write to .tmp, fsync, rename) preserved from
the prior CLI design — trigger is now HTTP POST.

+51 new tests (33 sessions + 18 dashboard-api). 149/149 total.
2026-05-18 22:14:00 -04:00
..