Define the core data structures that flow through the entire pipeline:
- model/session.go: SessionStats (per-session aggregates including
token counts across 5 categories — input, output, cache_write_5m,
cache_write_1h, cache_read), APICall (deduplicated by message.id,
keyed to the final billed usage), and ModelUsage (per-model
breakdown within a session). Tracks subagent relationships via
IsSubagent/ParentSession fields.
- model/metrics.go: Higher-order aggregate types — SummaryStats
(top-level totals with per-active-day rates for cost, tokens,
sessions, and minutes), DailyStats/HourlyStats/WeeklyStats
(time-bucketed views), ModelStats (cross-session model comparison
with share percentages), ProjectStats (per-project ranking), and
PeriodComparison (current vs previous period for delta display).
- model/budget.go: BudgetStats with plan ceiling, custom budget,
burn rate, and projected monthly spend for the budget tab.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Set up the cburn project foundation:
- go.mod: Define module "cburn" targeting Go 1.24.2 with core
dependencies — Cobra (CLI framework), Bubble Tea + Lipgloss
(TUI), BurntSushi/toml (config), and modernc.org/sqlite (pure-Go
SQLite for the metrics cache, no CGO required).
- go.sum: Lock all direct and transitive dependency versions for
reproducible builds.
- main.go: Minimal entry point that delegates to cmd.Execute(),
following the standard Cobra application pattern.
- .gitignore: Exclude the compiled binary, IDE directories (.idea/,
.vscode/), and macOS .DS_Store files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>