What's New
Added
codeburn modelscommand. Per-model breakdown across all providers — one row per (provider, model), sorted by cost. Columns: Input, Output, Cache Write, Cache Read, Total, Cost, plus a Top Task cell (e.g.Coding (42%)). Pass--by-taskto explode per task type. Filters:--period,--from/--to,--provider,--task,--top,--min-cost. Formats:table(Unicode box-drawn),markdown,json,csv. Auto-sizes columns and responsively drops cache/token columns on narrow terminals. (#287)- Crush provider support. Charmbracelet Crush agent metrics now tracked — walks
~/.local/share/crush/projects.json, reads each project's SQLite DB. Closes #278. Thanks @Jelloeater for the request and schema reference. - Multiple Claude config directories. Set
CLAUDE_CONFIG_DIRS(:on POSIX,;on Windows) to scan multiple Claude data dirs in one run.~expansion, dedup, and graceful skip on unreadable dirs. Closes #208. Thanks @ccrvlh for the feature request. - Per-day one-shot data in
--format json. Eachdaily[]entry now carriesturns,editTurns,oneShotTurns, andoneShotRate. Closes #279. Thanks @eugene-eee-hongkyu for the feature request. - CONTRIBUTING.md, architecture docs, and per-provider docs. 19 new doc files for contributors. (#284)
- Provider icons in README. Each provider row links to its doc with an icon column. (#285, #286)
Fixed
- Cursor sessions break down by project, not one "cursor" row. Walks
workspaceStorage/*/workspace.jsonandcomposer.composerDatato attribute bubbles per workspace. Composers without a workspace stay under a catch-allcursorrow. Cursor cache version bumped to 3. Closes the per-project half of #196. Thanks @cwikio for the detailed report. (#296) - Cursor cost shown for every model, not just Auto. Expanded alias map to cover all Cursor model variants (
claude-4.x-*,composer-1/1.5/2, etc.) with regression tests. Closes #159. Thanks @CarlvinceTan for reporting. (#290) - Activity classifier no longer mislabels feature work as debugging. Earliest keyword match wins — "add error handling" → Feature, not Debugging. Fixes the misattribution half of #196. (#289)
- Optimize suggestions declare their destination. Every fix now labels where it goes:
claude-md,session-opener,prompt, orshell-config. Closes #277. Thanks @chimon2000 for the suggestion. (#281) - Daily cache discards pre-v5 caches. Prevents stale single-bucket "cursor" provider totals from persisting after the per-project upgrade. (#297)
- node:sqlite V8 crash on invalid UTF-8. Text columns containing raw blobs no longer crash the parser. (#272)
Fixed (macOS menubar)
- Stuck loading after sleep. Non-blocking pipe I/O + watchdog timer recover from hung CLI subprocesses. (#266, #293)
- System sleep blocked. Menubar no longer prevents macOS from sleeping. (#270)
- Double-click on pill tabs and oversized disconnected tabs. (#274)
- Old process cleanup. Installer waits for old menubar to exit before launching new one. (#275)
- Node 22.x buggy patch guard. Refuses to load
node:sqliteon known-crashy Node 22 builds. (#265)
Tests
47 files, 661 tests (was 555). New suites: Crush provider, Claude multi-dir, Cursor workspace breakdown, models report, classifier keyword priority, Cursor model alias identity, blob-to-text.
The macOS menubar is published separately as mac-v0.9.8.