Commit Graph

2 Commits

Author SHA1 Message Date
teernisse
cfbbb9d6db feat: add domain model types for session metrics and statistics
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>
2026-02-19 13:00:57 -05:00
teernisse
340f688a1f chore: initialize project scaffolding and Go module
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>
2026-02-19 13:00:45 -05:00