RetrySight Lite 1.1.0 is out now — download it or run:
curl -fsSL https://app.retrysight.com/install.sh | bash
This release is a correctness fix for the dashboard’s headline metric: retry_count for real Claude Code CLI sessions was badly overcounted, and this version fixes it.
What was wrong
Claude Code CLI writes session transcripts as JSONL, with each line shaped like {"type": "assistant" | "user", "message": {"role", "content", "usage", ...}} — the actual message fields live nested one level under message, not at the top of the line.
Lite’s log collector was written against an older, flatter shape and never recognized the nested one. The practical effect: almost every line of a real session — plain chat turns, tool results, session bookkeeping — fell through to a generic EDIT classification, which Lite counts as a retry signal. A 1,175-line transcript sampled during the fix produced 1,174 fake retries. The same transcript, reclassified correctly, has 32.
Token usage had a related problem: real usage data lives at message.usage, not at the top level, so it was never being read for Claude Code sessions at all.
What changed
- The collector now reads the real nested
messageshape Claude Code actually writes. - Only genuine signals count as a retry: a failed tool call, a mutating edit (not every tool call — a
ReadorGrepisn’t a retry), a test failure, a rejected diff, or context compaction. - Token usage is read from
message.usage, and a single transcript line can now produce both a token-usage record and an activity record — real turns often carry both at once. - Session bookkeeping lines (attachments, file-history snapshots, and similar product-internal records) no longer count as edits.
See the pull request for the full before/after breakdown.
If you already have Claude Code data in Lite
Existing retry_count and token totals ingested under the old logic are still wrong — a code fix doesn’t retroactively correct rows already written to your local database. 1.1.0 ships a one-off backfill script that recomputes them from data already on disk, without re-reading your .jsonl session files or risking duplicate counts:
cd manager
npm run reclassify-claude-code-events # dry run first — prints what would change
npm run reclassify-claude-code-events -- --apply # then apply (backs up the database first)
It’s safe to re-run: the second run for a session that already looks correct is a no-op.
Everything else in 1.1.0
Full details in the changelog.
RetrySight Lite is free, Apache-2.0, and runs entirely on your machine — no telemetry leaves your network. See how it compares to Cloud and Enterprise if you’re outgrowing a single desktop.