Skip to content

Commit 508edcd

Browse files
committed
chore: bump version to 0.8.2, update changelog and readme
1 parent e18a1ef commit 508edcd

3 files changed

Lines changed: 47 additions & 31 deletions

File tree

CHANGELOG.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
# Changelog
22

3-
## Unreleased
3+
## 0.8.2 - 2026-04-20
44

55
### Added
6-
- **Persistent parse cache for all providers.** Repeated CLI runs now reuse parsed source summaries across fresh processes instead of reparsing raw logs every time.
7-
- **`--no-cache` on parse-backed commands.** `report`, `today`, `month`, `status`, `export`, `optimize`, and `compare` can bypass cached entries for that run and rebuild them from raw logs.
8-
- **`Updating cache` stderr progress.** Non-JSON cold or partial cache rebuilds now show progress while CodeBurn refreshes changed sources.
6+
- **Persistent parse cache for all providers.** Repeated CLI runs now reuse parsed source summaries across fresh processes instead of reparsing raw logs every time. Cache lives at `~/.cache/codeburn/source-cache-v1/` with atomic writes and 0600 file permissions. Credit: @spMohanty (PR #116).
7+
- **`--no-cache` on parse-backed commands.** `report`, `today`, `month`, `status`, `export`, `optimize`, and `compare` can bypass cached entries for that run and rebuild them from raw logs. Credit: @spMohanty (PR #116).
8+
- **`Updating cache` stderr progress.** Non-JSON cold or partial cache rebuilds now show progress while CodeBurn refreshes changed sources. Credit: @spMohanty (PR #116).
9+
- **`codeburn plan` subscription tracking.** Set your plan (`claude-pro`, `claude-max`, `cursor-pro`, or custom) to see a usage progress bar in the dashboard. Includes 7-day trailing median projection and billing-cycle-aware period math. Credit: @tmchow (PR #74).
910

1011
### Changed
11-
- **Cursor now uses the shared parse cache.** The provider-specific Cursor cache path is gone; SQLite-backed provider data now flows through the same persistent cache layer as the other providers.
12+
- **Cursor now uses the shared parse cache.** The provider-specific Cursor cache path is gone; SQLite-backed provider data now flows through the same persistent cache layer as the other providers. Credit: @spMohanty (PR #116).
13+
14+
### Fixed
15+
- **Model pricing: removed bidirectional fuzzy match.** `canonical.startsWith(key) || key.startsWith(canonical)` could match unrelated models. Now uses one-directional prefix only. Credit: @hobostay (PR #77).
16+
- **Zero-cost models incorrectly filtered.** `!entry.input_cost_per_token` treated `0` as missing. Now checks `=== undefined` so free-tier models retain their pricing entry. Credit: @hobostay (PR #77).
17+
- **File descriptor leak in `readSessionLines`.** Generator now calls `stream.destroy()` in a `finally` block so early abandonment does not leak open handles. Credit: @hobostay (PR #77).
18+
- **CSV injection guard extended.** Tab and carriage return characters at cell start are now escaped alongside `=`, `+`, `-`, `@`. Credit: @hobostay (PR #77).
19+
- **Crash on empty export periods.** Optional chaining prevents `undefined` access when a period has no projects. Credit: @hobostay (PR #77).
20+
- **Config read crash on malformed JSON.** Restored catch-all error handling in `readConfig` so a corrupt `config.json` returns defaults instead of crashing.
1221

1322
## 0.8.0 - 2026-04-19
1423

README.md

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<a href="https://www.npmjs.com/package/codeburn"><img src="https://img.shields.io/npm/v/codeburn.svg" alt="npm version" /></a>
1111
<a href="https://www.npmjs.com/package/codeburn"><img src="https://img.shields.io/npm/dt/codeburn.svg" alt="total downloads" /></a>
1212
<a href="https://github.com/getagentseal/codeburn/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/codeburn.svg" alt="license" /></a>
13-
<a href="https://github.com/getagentseal/codeburn"><img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg" alt="node version" /></a>
13+
<a href="https://github.com/getagentseal/codeburn"><img src="https://img.shields.io/badge/node-%3E%3D22-brightgreen.svg" alt="node version" /></a>
1414
</p>
1515

1616
<p align="center">
@@ -35,9 +35,9 @@ npx codeburn
3535

3636
### Requirements
3737

38-
- Node.js 20+
38+
- Node.js 22+
3939
- Claude Code (`~/.claude/projects/`), Codex (`~/.codex/sessions/`), Cursor, OpenCode, Pi (`~/.pi/agent/sessions/`), and/or GitHub Copilot (`~/.copilot/session-state/`)
40-
- For Cursor/OpenCode support: `better-sqlite3` is installed automatically as an optional dependency
40+
- For Cursor/OpenCode support: uses Node's built-in `node:sqlite` (Node 22+)
4141

4242
## Usage
4343

@@ -159,7 +159,7 @@ Either flag alone is valid. Inverted or malformed dates exit with a clear error.
159159

160160
Codex tool names are normalized to match Claude's conventions (`exec_command` shows as `Bash`, `read_file` as `Read`, etc.) so the activity classifier and tool breakdown work across providers.
161161

162-
Cursor reads token usage from its local SQLite database. Since Cursor's "Auto" mode hides the actual model used, costs are estimated using Sonnet pricing (labeled "Auto (Sonnet est.)" in the dashboard). The Cursor view shows a **Languages** panel (extracted from code blocks) instead of Core Tools/Shell/MCP panels, since Cursor does not log individual tool calls. First run on a large Cursor database may take up to a minute; results are cached and subsequent runs are instant.
162+
Cursor reads token usage from its local SQLite database via Node's built-in `node:sqlite`. Since Cursor's "Auto" mode hides the actual model used, costs are estimated using Sonnet pricing (labeled "Auto (Sonnet est.)" in the dashboard). The Cursor view shows a **Languages** panel (extracted from code blocks) instead of Core Tools/Shell/MCP panels, since Cursor does not log individual tool calls. Parsed results are cached through the shared persistent cache layer.
163163

164164
GitHub Copilot only logs output tokens in its session state, so Copilot cost rows sit below actual API cost. The model is tracked via `session.model_change` events; messages before the first model change are skipped to avoid silent misattribution.
165165

@@ -339,28 +339,35 @@ CodeBurn reads these files, deduplicates messages (by API message ID for Claude,
339339

340340
```
341341
src/
342-
cli.ts Commander.js entry point
343-
dashboard.tsx Ink TUI (React for terminals)
344-
parser.ts JSONL reader, dedup, date filter, provider orchestration
345-
models.ts LiteLLM pricing, cost calculation
346-
classifier.ts 13-category task classifier
347-
compare-stats.ts Model comparison engine (metrics, category breakdown, working style)
348-
types.ts Type definitions
349-
format.ts Text rendering (status bar)
350-
menubar-json.ts Payload builder consumed by the native macOS menubar app in mac/
351-
export.ts CSV/JSON multi-period export
352-
config.ts Config file management (~/.config/codeburn/)
353-
currency.ts Currency conversion, exchange rates, Intl formatting
354-
sqlite.ts SQLite adapter (lazy-loads better-sqlite3)
355-
cursor-cache.ts Cursor result cache (file-based, auto-invalidating)
342+
cli.ts Commander.js entry point
343+
dashboard.tsx Ink TUI (React for terminals)
344+
parser.ts JSONL reader, dedup, date filter, provider orchestration
345+
models.ts LiteLLM pricing, cost calculation
346+
classifier.ts 13-category task classifier
347+
compare-stats.ts Model comparison engine (metrics, category breakdown, working style)
348+
types.ts Type definitions
349+
format.ts Text rendering (status bar)
350+
menubar-json.ts Payload builder consumed by the native macOS menubar app in mac/
351+
export.ts CSV/JSON multi-period export
352+
config.ts Config file management (~/.config/codeburn/)
353+
currency.ts Currency conversion, exchange rates, Intl formatting
354+
sqlite.ts SQLite adapter (node:sqlite)
355+
source-cache.ts Persistent parse cache (manifest + per-source entries)
356+
discovery-cache.ts Provider directory scan caching
357+
parse-progress.ts Stderr progress bar for cache rebuilds
358+
provider-colors.ts Provider color and label constants
359+
plans.ts Subscription plan presets and validators
360+
plan-usage.ts Billing period math and usage projection
361+
fs-utils.ts Bounded file readers with stream support
356362
providers/
357-
types.ts Provider interface definitions
358-
index.ts Provider registry (lazy-loads Cursor, OpenCode)
359-
claude.ts Claude Code session discovery
360-
codex.ts Codex session discovery and JSONL parsing
361-
cursor.ts Cursor SQLite parsing, language extraction
362-
opencode.ts OpenCode SQLite session discovery and parsing
363-
pi.ts Pi agent JSONL session discovery and parsing
363+
types.ts Provider interface definitions
364+
index.ts Provider registry (lazy-loads Cursor, OpenCode)
365+
claude.ts Claude Code session discovery
366+
codex.ts Codex session discovery and JSONL parsing
367+
copilot.ts GitHub Copilot session state parsing
368+
cursor.ts Cursor SQLite parsing, language extraction
369+
opencode.ts OpenCode SQLite session discovery and parsing
370+
pi.ts Pi agent JSONL session discovery and parsing
364371
```
365372

366373
## Star History

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "codeburn",
3-
"version": "0.8.1",
3+
"version": "0.8.2",
44
"description": "See where your AI coding tokens go - by task, tool, model, and project",
55
"type": "module",
66
"main": "./dist/cli.js",

0 commit comments

Comments
 (0)