Releases: getagentseal/codeburn
Release list
v0.9.15
What's New
Highlights since v0.9.14:
Added (CLI)
codeburn context. See what fills a session's context window, by role, block type, and tool: an interactive terminal browser over your Claude Code and Codex sessions, separating the live window from compacted history and anchoring estimates to the exact API-reported context size. Also a Context page in the browser dashboard, and scriptable viacodeburn context <id> --json. (#592)- Zed provider. Zed's built-in agent is now tracked: per-request token usage with full cache fields, topped up to each thread's exact cumulative counter and validated token-for-token against a real store. (#594, format documented by @chatzinikolakisk in #480)
codeburn audit. Per provider-and-model table of where every number comes from: calls, input, output, reasoning, cache read/write, cost. (#578)- User price overrides for any model via
codeburn price-override. (#560, thanks @ozymandiashh) - open-design provider for per-model usage tracking. (#559, thanks @ozymandiashh)
- Browser dashboard is now fully mobile responsive (#582, thanks @ele-yufo; #589) and paints instantly with the local payload inlined, defaulting to today with fast-fail for offline paired devices. (#573)
Fixed (CLI)
- Cursor tokens are now Cursor's own numbers. Input comes from the per-conversation context meter instead of text-length guesses, credited once per conversation on a stable anchor so daily history stays consistent across re-scans; tools and shell commands come from the agent stream; Composer house models price at Cursor's published rates; figures are flagged estimated where they are. Fixes the class of report in #574 and closes #326. (#575)
- Copilot Chat users no longer see $0.00: VS Code core chatSessions journals are read for token counts. (#563, thanks @ozymandiashh)
- Codex sessions up to 4GB are parsed (streaming cap raised). (#569)
- Devin: ATIF v1.7 support (#570, thanks @tvcsantos) and friendly GPT model names with effort tiers. (#585)
- OpenCode skills and subagents breakdowns populated. (#557, thanks @KevNev19)
- Pi native skill loads classify as Skill, not Read. (#590)
- Cache read/write scoped to the selected period in web and devices CLI. (#586, thanks @ozymandiashh)
- Invalid dashboard periods return an error instead of exiting the web server. (#554, thanks @ozymandiashh)
- LiteLLM pricing snapshot refreshed; MiniMax-M3 follows MiniMax's new tiered pricing (standard tier $0.30/$1.20 per M). Daily cache bumped to v10 so history re-hydrates under the new Cursor accounting and pricing.
macOS menubar
- Local/Combined usage toggle backed by combined multi-device data in menubar-json. (#567, #568, thanks @ozymandiashh)
- The update dialog now detects a codeburn CLI too old to install menubar updates and shows the exact CLI upgrade command first. (#593)
Thanks to @ozymandiashh, @tvcsantos, @KevNev19, @ele-yufo, and @chatzinikolakisk for contributions this release.
The macOS menubar app is published separately as mac-v0.9.15.
What's Changed
- docs(changelog): credit @vaibhavarora14 for #486 by @iamtoruk in #552
- Raise streaming session cap to 4GB so large Codex sessions are counted by @iamtoruk in #569
- docs(readme): lead with a one-line definition for SEO/AI-answer consistency by @iamtoruk in #571
- fix(devin): add missing support for ATIF v1.7 by @tvcsantos in #570
- feat(pricing): add user price overrides for models by @ozymandiashh in #560
- feat(providers): add open-design provider by @ozymandiashh in #559
- fix(web): reject invalid dashboard periods without exiting by @ozymandiashh in #554
- Populate OpenCode skills and subagents breakdowns by @KevNev19 in #557
- fix(copilot): read VS Code chatSessions so Copilot Chat users see cost (#555) by @ozymandiashh in #563
- feat(menubar): expose combined multi-device usage in menubar-json (#566) by @ozymandiashh in #567
- feat(menubar): Local/Combined usage toggle — Swift, stacked on #567 (#566) by @ozymandiashh in #568
- perf(web): instant dashboard load, default to today, fast-fail offline peers by @iamtoruk in #573
- Clarify CodeBurn's open-source project status by @iamtoruk in #580
- feat: add
codeburn audittoken-source view by @iamtoruk in #578 - feat(web): mobile responsive web dashboard by @ele-yufo in #582
- Complete mobile responsiveness (header overflow + a11y) by @iamtoruk in #589
- fix: scope cache read/write to the selected period (web + devices CLI) (#583) by @ozymandiashh in #586
- fix(pi): classify native skill loads as Skill, not Read (#588) by @ozymandiashh in #590
- fix(devin): report friendly GPT model names with effort tier by @ozymandiashh in #585
- fix(cursor): use Cursor's real context tokens for input (#574) by @iamtoruk in #575
- feat(context): per-session context token tree across CLI, TUI, and dashboard by @iamtoruk in #592
- fix(menubar): refuse menubar updates from CLIs older than 0.9.9 by @iamtoruk in #593
- feat(providers): add Zed agent provider by @iamtoruk in #594
- release: 0.9.15 by @iamtoruk in #595
New Contributors
Full Changelog: v0.9.14...v0.9.15
Menubar v0.9.15
Install with:
npm install -g codeburn
codeburn menubar
That command drops the app into ~/Applications, records the persistent
codeburn CLI path used by the menubar, verifies the downloaded checksum,
clears quarantine after bundle verification, and launches it. If you download
the zip from this page directly and macOS shows "cannot verify developer",
right-click the app in Finder and pick Open to whitelist it once.
Changes in 0.9.15:
- The update dialog detects a codeburn CLI too old to install menubar updates (pre-0.9.9) and shows the exact CLI upgrade command first. (#593)
- Local/Combined usage toggle backed by combined multi-device data. (#567, #568, thanks @ozymandiashh)
CLI release: v0.9.15
sha256: bf9dbaff413057142d5a872d76a9e52c09c15fe565300ec3296683c3b88e93da
v0.9.14
What's New
Highlights since v0.9.12:
Added (CLI)
- Browser dashboard.
codeburn webserves a local React dashboard with charts and the same task, model, tool, and project breakdowns as the TUI. Reads from disk, binds to localhost. (#531, #533) - Combine usage across your devices.
codeburn shareandcodeburn devicesjoin usage across your machines on the local network, PIN-paired. You can also discover and pair devices from the browser. (#532, #534, #536) - New providers: Grok Build (#521), ZCode / z.ai GLM-5.2 (#537), Hermes Agent (#544), Kiro CLI sessions (#502), and zerostack (#519, thanks @kevinpauer).
codeburn overview, a copy-pasteable plain-text monthly summary. (#528, #535)- Codex credit usage alongside dollar cost (#510), MCP server usage in JSON/CSV exports (#514), and JSON output for
optimizeandyield(#500). - OpenCode 1.1+ file-based sessions (#523) and a Claude-scoped agent-type breakdown.
Fixed (CLI)
- Model names in reports no longer show internal pricing-alias keys: GLM-5.2, Grok Build, gpt-5.5, and gpt-5.3-codex-spark all label correctly. (#548, #550, #539)
- Daily cache bumped to v9 so newly supported providers backfill across history without a manual cache clear. (#550)
- Cursor range-aware scan (#512), cursor-agent workspace-less layout (#542), Claude project-name grouping (#540), Copilot shell and skills display (#527), Codex MCP-call attribution (#513), Antigravity CLI layout (#541).
macOS menubar
- Custom daily budget that respects the display metric (#505, #506), agent tabs ordered by usage for the selected range (#549), fewer keychain prompts on refresh (#491), the macOS 27 right-click menu (#472), and installer HTTP-proxy support (#475).
Thanks to @ozymandiashh, @jonjozwiak, @kevinpauer, @tvcsantos, @steelp02, @sleicht, @theparlor, and @vaibhavarora14 for contributions this release.
The macOS menubar app is published separately as mac-v0.9.14.
What's Changed
- chore(ci): bump GitHub Actions to Node 24 versions by @iamtoruk in #468
- Track + break down workflow/ultra subagent usage (fix #470) by @iamtoruk in #471
- fix(mac): restore right-click status-item menu on macOS 27 by @theparlor in #472
- fix(menubar): support installer HTTP proxies by @sleicht in #475
- fix(menubar): stop repeated keychain prompts on token refresh (#490) by @iamtoruk in #491
- feat(copilot): OTel cache-token parsing (#477) + maintainer review fixes by @iamtoruk in #498
- feat(providers): [copilot.ts]Add OTel cache token parsing including tests and regression checks. by @steelp02 in #477
- fix(menubar): reduce repeated status parsing (#486) + clock-skew guard by @iamtoruk in #499
- fix(menubar): reduce repeated status parsing by @vaibhavarora14 in #486
- feat(cli): JSON output for optimize and yield (#492) by @iamtoruk in #500
- fix(cli): validate --provider and make non-TTY report deterministic by @iamtoruk in #501
- feat(kiro): add Kiro CLI session discovery and parsing (#476) by @iamtoruk in #502
- test(usage-aggregator): fix timeout flake by building against an empty HOME by @iamtoruk in #503
- test(cli-proxy-path): fix load-timeout flake by raising the test timeout by @iamtoruk in #504
- feat(menubar): daily budget alert respects the display metric (Cost or Tokens) (#497) by @iamtoruk in #505
- feat(menubar): custom daily budget amount by @iamtoruk in #506
- fix(menubar): explicit observation dependency for the budget flame by @iamtoruk in #507
- fix(menubar): cost budget stays USD; flag empty custom budget by @iamtoruk in #508
- feat(menubar): polish status-item menu + About tab (Star/Sponsor) by @iamtoruk in #509
- feat(codex): compute Codex credit usage (#408, #495) by @iamtoruk in #510
- fix(menubar): drop ' tok' suffix from Total Tokens metric (#497) by @iamtoruk in #511
- fix(cursor): range-aware scan instead of blind 250k ROWID cap (#482) by @iamtoruk in #512
- fix(codex): attribute MCP calls emitted as event_msg/mcp_tool_call_end (#478) by @iamtoruk in #513
- feat(export): surface MCP server usage in JSON and CSV exports (#496) by @iamtoruk in #514
- Overhaul README: story layout, logo wall, tables, refreshed sponsor section by @iamtoruk in #516
- docs: finish README overhaul (collapsible sections, 'AI tools' wording) by @iamtoruk in #518
- Add zerostack provider by @kevinpauer in #519
- docs: add zerostack to the supported-tools logo wall by @iamtoruk in #520
- feat(providers): add Grok Build provider by @iamtoruk in #521
- docs: add Grok Build to the supported-tools logo wall by @iamtoruk in #522
- feat(opencode): read file-based JSON sessions (OpenCode 1.1+) by @iamtoruk in #523
- fix(dashboard): scope the plan banner to its own provider tab by @iamtoruk in #524
- feat(overview): plain-text monthly usage overview command by @iamtoruk in #528
- chore(dev): silence the tsx module.register deprecation warning by @iamtoruk in #529
- fix: fix and improve test isolation and collision with environment by @tvcsantos in #530
- feat(web): local React/Recharts dashboard (codeburn web) by @iamtoruk in #531
- feat(sharing): securely combine usage across your own devices by @iamtoruk in #532
- feat(web): show usage by device in the dashboard by @iamtoruk in #533
- feat(web): in-dashboard device discovery, share-from-browser, redesign + hardening by @iamtoruk in #534
- feat(overview): cache in/out tokens table, roomier tables by @iamtoruk in #535
- feat(devices): joined Totals by machine report by @iamtoruk in #536
- feat(providers): add ZCode (z.ai GLM-5.2) usage provider by @iamtoruk in #537
- docs: add ZCode to the supported-tools list by @iamtoruk in #538
- Fix Claude Code project names collapsing to a parent folder by @ozymandiashh in #540
- feat(providers): add Hermes Agent provider by @iamtoruk in #544
- Distinguish gpt-5.3-codex-spark from base GPT-5.3 Codex label by @ozymandiashh in #539
- fix(cursor-agent): ingest workspace-less CLI transcript layout by @ozymandiashh in #542
- fix(models): price Hermes lowercase glm-5.2 the same as GLM-5.2 by @ozymandiashh in #545
- fix(antigravity): read current agy antigravity-cli on-disk layout by @ozymandiashh in #541
- fix(copilot): Correct shell commands and skills/agents display by @jonjozwiak in #527
- fix(menubar): surface CLI stdout/stderr on decode failure (#515) by @iamtoruk in #547
- fix(pi): label gpt-5.5 as GPT-5.5 by @iamtoruk in #548
- fix(menubar): show every active agent as a tab, ordered by usage for the selected range by @iamtoruk in #549
- fix: clean model names in reports and re-hydrate daily cache for new providers by @iamtoruk in #550
- chore(release): 0.9.14 by @iamtoruk in #551
New Contributors
- @theparlor made their first contribution in #472
- @steelp02 made their first contribution in #477
- @kevinpauer made their first contribution in #519
- @jonjozwiak made their first contribution in #527
Full Changelog: v0.9.12...v0.9.14
Menubar v0.9.14
Install with:
npm install -g codeburn
codeburn menubar
That command drops the app into ~/Applications, records the persistent
codeburn CLI path used by the menubar, verifies the downloaded checksum,
clears quarantine after bundle verification, and launches it. If you download
the zip from this page directly and macOS shows "cannot verify developer",
right-click the app in Finder and pick Open to whitelist it once.
Menubar v0.9.13
Install with:
npm install -g codeburn
codeburn menubar
That command drops the app into ~/Applications, records the persistent
codeburn CLI path used by the menubar, verifies the downloaded checksum,
clears quarantine after bundle verification, and launches it. If you download
the zip from this page directly and macOS shows "cannot verify developer",
right-click the app in Finder and pick Open to whitelist it once.
v0.9.12
What's New
Highlights since v0.9.11:
Added (CLI)
- MCP server —
codeburn mcpexposesget_usageandget_savingsto AI agents over stdio, with project names pseudonymized by default. (#429) - New providers: Devin (#444), Antigravity IDE (#418), JetBrains — IntelliJ/DataGrip via Copilot (#433), coder/mux (#438), and an opt-in Vercel AI Gateway datasource (#432).
- Automatic pricing gap-fill from models.dev and OpenRouter for models LiteLLM hasn't indexed yet (e.g. Claude Fable 5). (#457)
- Proxy-aware cost attribution —
codeburn proxy-pathreports subscription-backed spend (e.g. Claude Code over Copilot) as net out-of-pocket, leaving actual cost untouched. (#417, #459) - Local-model savings —
codeburn model-savingsreports the counterfactual spend vs a paid baseline; the local call still costs $0. (#421) - CNY currency (#430) and a contribution heatmap insight (#437).
Fixed (CLI)
- Per-file parse isolation — one malformed session file no longer aborts the run or empties the daily-history trend. (#441, #450, #453)
- Codex fork dedupe undercounting (#458) and cache-read double-counting in the models report (#447).
- Model-name matching on the version boundary so
claude-opus-4-6andclaude-opus-4-8don't collapse. (#417) - Critical-path fetch timeouts so a stalled network can't wedge the CLI or menubar. (#445, #448)
- Vercel AI Gateway data now flows through aggregation instead of reporting $0; Fable 5 and Mythos 5 price correctly. (#432, #466)
Fixed (macOS menubar)
- Refresh reliability — awaits the CLI exit via its termination handler and caps concurrent spawns, fixing the "Loading…" wedge after a long idle. (#462)
- Recover from stuck loading orphaned across sleep/wake (#412); correct currency picker (#435).
The macOS menubar app is published separately as mac-v0.9.12.
What's Changed
- fix(menubar): recover from stuck loading when in-flight entry is orphaned by @iamtoruk in #412
- Fix Antigravity hook stale CLI paths by @ozymandiashh in #410
- fix(menubar): run CLI exit-wait and timeout off the cooperative pool by @iamtoruk in #426
- feat(mcp): codeburn mcp server exposing usage + savings to AI agents by @iamtoruk in #429
- Add CNY currency support by @PorunC in #430
- fix(menubar): use SupportedCurrency enum in settings picker by @iamtoruk in #435
- feat(menubar): configure CLAUDE_CONFIG_DIRS via Settings by @iamtoruk in #436
- Add contribution heatmap insight by @PorunC in #437
- feat(providers): add coder/mux as a datasource by @ThomasK33 in #438
- refactor(mux): drop dead openai reasoning fallback by @iamtoruk in #446
- fix(models-report): stop double-counting cache reads by @iamtoruk in #447
- fix(network): add timeouts to critical-path fetches (#445) by @iamtoruk in #448
- fix(parser): tolerate string message content; isolate per-file parse failures (#441) by @iamtoruk in #450
- fix(parser): cache parse failures so broken files aren't re-read every run (#441 follow-up) by @iamtoruk in #453
- feat(cli): local-model cost savings, re-homed onto current main (#421) by @iamtoruk in #454
- feat(cli): track local-model cost savings against a paid baseline (#421) by @justingheorghe in #423
- feat(menubar): add macOS app icon by @iamtoruk in #455
- feat: add JetBrains (IntelliJ/DataGrip) session discovery and parsing by @zuberikea in #433
- test(copilot): JetBrains coverage + Windows path inference fix (#433 follow-up) by @iamtoruk in #456
- fix(codex): content-address fork dedupe key to stop undercounting divergent events by @iamtoruk in #458
- feat(pricing): Fable 5 + Mythos 5 launch pricing + names by @iamtoruk in #463
- feat(pricing): automatic gap-fill from models.dev and OpenRouter by @iamtoruk in #457
- chore(pricing): drop manual Fable/Mythos patch, rely on gap-fill by @iamtoruk in #464
- fix(menubar): await terminationHandler, not a blocked queue thread (real fix for the Loading wedge) by @iamtoruk in #462
- feat(pricing): proxy-aware cost attribution for subscription-backed Claude (#417) by @iamtoruk in #459
- fix(menubar-tests): compile fix for localModelSavings/savingsUSD by @iamtoruk in #465
- feat: add devin provider by @tvcsantos in #444
- feat(antigravity-ide): added support for antigravity IDE by @KirDE in #418
- fix(cursor): period-aligned lookback; add Vercel AI Gateway provider by @sisodiabhumca in #432
- fix: Vercel Gateway aggregation, Mythos pricing, Claude parse isolation by @iamtoruk in #466
- chore(release): 0.9.12 by @iamtoruk in #467
New Contributors
- @PorunC made their first contribution in #430
- @ThomasK33 made their first contribution in #438
- @justingheorghe made their first contribution in #423
- @zuberikea made their first contribution in #433
- @tvcsantos made their first contribution in #444
- @KirDE made their first contribution in #418
- @sisodiabhumca made their first contribution in #432
Full Changelog: v0.9.11...v0.9.12
Menubar v0.9.12
Install with:
npm install -g codeburn
codeburn menubar
That command drops the app into ~/Applications, records the persistent
codeburn CLI path used by the menubar, verifies the downloaded checksum,
clears quarantine after bundle verification, and launches it. If you download
the zip from this page directly and macOS shows "cannot verify developer",
right-click the app in Finder and pick Open to whitelist it once.
v0.9.11
What's New
Fixed (CLI)
- Forge dedup key instability. The fallback deduplication key used the raw message array index, which shifts when messages are deleted between scans. Now uses a composite of model name and token counts. Also fixed a variable reference before its declaration that would crash at runtime when no tool call ID was present.
- Session cache rejected
subagentTypesfield. The cache validator did not recognize thesubagentTypesarray, causing entries with this field to be silently dropped and reparsed on every run. - Conflicting date flags on
statusaccepted silently. Passing--daywith--from/--to, or--dayswith any other date flag, produced undefined behavior. Now exits with a clear error message.
Changed (CLI)
- OpenCode provider uses shared SQLite parser. Delegates to
sqlite-session-parser.ts(same module KiloCode uses), reducing the provider from 498 to 66 lines with no behavior change.
Fixed (macOS menubar)
- Loading watchdog killed healthy CLI fetches. The recovery loop ran every 8 seconds with no backoff. Each attempt reset the generation counter, discarding in-flight CLI responses (45s timeout) before they could finish. Replaced with exponential backoff (8s to 60s, 6 attempts max) that skips recovery when a fetch is already in flight. Shows an error overlay with a Retry button after all attempts are exhausted.
- Multi-day cache key mismatch.
selectedDayreturned the earliest date instead of nil when multiple days were selected, andstartInteractiveSelectionRefreshdid not pass the day set to the cache key constructor. Both now matchPayloadCacheKeynormalization rules.
The macOS menubar is published separately as mac-v0.9.11.
What's Changed
- feat: add Warp provider adapter by @Amirault in #350
- Fix DeepSeek v4 Claude pricing through stale runtime cache by @ozymandiashh in #367
- Fix Antigravity provider, Codex fork dedup, tab ordering by @iamtoruk in #372
- Add tooling breakdowns to CLI and menubar by @iamtoruk in #373
- File-aware retry detection with typed ToolCall by @iamtoruk in #379
- Fix Antigravity 2 Gemini 3.5 Flash tracking by @ozymandiashh in #377
- fix(models): resolve Warp Claude variant pricing aliases by @Amirault in #378
- Group git worktrees under main project by @ozymandiashh in #375
- Fix menubar installer CLI path lookup by @ozymandiashh in #387
- Pause menubar refresh after repeated stalls by @dengsenyao in #388
- Capture Antigravity CLI usage via statusLine by @ozymandiashh in #382
- Normalize Copilot MCP tool names by @ozymandiashh in #374
- Add multi-day calendar selection with custom popover UI by @iamtoruk in #393
- Fix OpenCode provider yielding zero usage (#392) by @iamtoruk in #394
- Add icon-only menubar display mode by @iamtoruk in #396
- fix: group Cowork sessions by space name and unify cross-provider project entries by @cfuselli in #398
- fix(cli): restore antigravity-hook command by @Leezj9671 in #399
- feat(providers): add forge provider support by @sleicht in #401
- Fix menubar stuck loading + KiloCode SQLite support by @iamtoruk in #405
- fix: pre-release cleanup - opencode refactor, watchdog backoff, forge dedup by @iamtoruk in #406
New Contributors
- @Amirault made their first contribution in #350
- @dengsenyao made their first contribution in #388
- @cfuselli made their first contribution in #398
- @Leezj9671 made their first contribution in #399
- @sleicht made their first contribution in #401
Full Changelog: v0.9.10...v0.9.11
Menubar v0.9.11
Added
- CLI update notification. When a newer CLI version is published, a blue banner appears above the star row showing the version and a copy button for the update command (
brew upgrade codeburnornpm update -g codeburn, detected automatically from how the CLI was installed).
Fixed
- Loading watchdog killed healthy CLI fetches. The recovery loop ran every 8 seconds with no backoff. Each attempt reset the generation counter, discarding in-flight CLI responses (45s timeout) before they could finish. Replaced with exponential backoff (8s to 60s, 6 attempts max) that skips recovery when a fetch is already in flight. Shows an error overlay with a Retry button after all attempts are exhausted.
- Multi-day cache key mismatch.
selectedDayreturned the earliest date instead of nil when multiple days were selected, andstartInteractiveSelectionRefreshdid not pass the day set to the cache key constructor. Both now matchPayloadCacheKeynormalization rules. - Dead code cleanup. Removed
RefreshBackoff.swift, its test file, and a broken test that called methods deleted in #393.
Install with:
npm install -g codeburn@0.9.11
codeburn menubar
That command drops the app into ~/Applications, records the persistent
codeburn CLI path used by the menubar, verifies the downloaded checksum,
clears quarantine after bundle verification, and launches it. If you download
the zip from this page directly and macOS shows "cannot verify developer",
right-click the app in Finder and pick Open to whitelist it once.
v0.9.10
What's New
Added (CLI)
- Agent and subagent tracking coverage across providers. Gemini sessions now emit one provider call per assistant message with token usage instead of one aggregate call per session, preserving per-message tools, bash commands, timestamps, and nearest user prompts. Existing cached aggregate Gemini entries are reparsed so the new per-message shape takes effect. Claude discovery also scans direct project-level
subagents/*.jsonlfiles, and Codex agent tool normalization is covered by regression tests. Addresses #336. Thanks @ozymandiashh. (#340) - Optimize tab with retry tax, routing waste, and token display modes. New
codeburn optimizesurface in the dashboard and menubar, with daily budget alerts and project drill-down. (#349)
Fixed (CLI)
- OpenCode child sessions attributed to their root session. The OpenCode parser walks the unarchived
session.parent_idsubtree so child and grandchild agent sessions contribute token and tool usage under the discovered root session, while still excluding child sessions from top-level discovery to avoid double counting. Thanks @ozymandiashh. (#343) - OpenCode router sessions with missing usage are still reported. Some OpenCode router/provider combinations persist assistant messages with text or tool activity but zero token and cost fields. The parser now keeps those turns as zero-cost calls instead of dropping the session entirely. Closes #341. Thanks @ozymandiashh. (#342)
- OpenCode and Goose sessions on fresh installs. Both providers returned zero sessions on first run when their on-disk directories did not yet exist. Discovery now treats missing directories as empty. (#347)
- One-shot rate detection for all non-Claude providers. Retry detection now sees multi-message flows correctly across providers, not only Claude. Follow-up to the v0.9.9 fix. (#355)
- Cursor
#cursor-ws=compound-path separator infingerprintFile.session-cache.tsonly handled the OpenCode:separator, so Cursor's workspace-aware paths could fall back incorrectly. The fingerprint now strips both#and:compound suffixes. Thanks @renerichter. (#358) - Per-provider multi-day data loss, division-by-zero, and decode fragility. Switching to Claude/Codex tab on 7-day/30-day/month periods previously only showed today's categories, models, sessions, and tokens because the cache shortcut only merged cost/calls. Per-provider periods now always do a full parse. Also floors
maxCostat 0.01 to avoid NaN bar widths in ActivitySection and ModelsSection. (#362)
Fixed (macOS menubar)
- Per-provider refresh latency. Switching provider tabs took about 24s on heavy histories. Now about 2s via session cache safety and reuse. (#344)
The macOS menubar is published separately as mac-v0.9.10.
Full Changelog: v0.9.9...v0.9.10