← ClaudeAtlas

verifylisted

How to end-to-end verify claude-usage-dashboard changes — isolated server instance, fixture injection without touching real logs, Playwright checks
ludengz/claude-usage-dashboard · ★ 8 · AI & Automation · score 75
Install: claude install-skill ludengz/claude-usage-dashboard
# Verifying claude-usage-dashboard changes ## Launch an isolated server instance The sandbox blocks in-process listeners — start the server detached via `Start-Process`. Port 3000 is often inside a Windows excluded port range; 8080 is known-safe. An explicit `PORT` fails fast instead of falling back. ```powershell $env:PORT = "8080" $env:CLAUDE_DASH_SYNC_DIR = "<scratch>\sync-verify" # see fixture injection below $env:CLAUDE_DASH_MACHINE_NAME = "verify-local" Start-Process -FilePath node -ArgumentList "server/index.js" ` -WorkingDirectory <repo> -WindowStyle Hidden ` -RedirectStandardOutput "<scratch>\server-out.log" -RedirectStandardError "<scratch>\server-err.log" -PassThru ``` Poll `server-out.log` for `running at` (startup sync of real logs takes up to ~60s the first time). Kill by PID and delete the temp sync dir when done. ## Fixture injection without touching real logs `LOG_DIR` is hardcoded to `~/.claude/projects`, but when `CLAUDE_DASH_SYNC_DIR` is set the server *reads* from that dir instead (multi-machine layout: `<syncDir>/<machine>/<project-dir>/<session>.jsonl`). So: 1. Point `CLAUDE_DASH_SYNC_DIR` at a temp dir — startup sync copies real logs into `<temp>/verify-local/` (real data appears in the UI for free). 2. Drop synthetic records under a second "machine" dir, e.g. `<temp>/synthetic-box/-Users-test-Workspace-myfixture/sess.jsonl`. Minimal parseable record (one JSONL line): ```json {"type":"assistant","sessionId":"s1","timestamp":"2026-0