What's Changed
- fix(leaderboard): drop duplicate page title above the view tabs by @junhoyeo (d237a00)
- ci(workflows): make Rust lint read-only by @IvGolovach in #638
- fix(pricing): resolve Kimi k2p6 aliases by @IvGolovach in #619
- fix(cursor): clarify explicit setup diagnostics by @IvGolovach in #623
- fix(cache): preserve recreated source entries by @IvGolovach in #624
- fix(kimi): deduplicate repeated status updates by @IvGolovach in #637
- fix(core): use local pricing fallback for hourly reports by @IvGolovach in #639
- fix(tui): scope cache by report filters by @IvGolovach in #617
- fix(submit): recover first-write races by @IvGolovach in #616
- fix(auth): reject personal tokens on group mutations by @IvGolovach in #621
- fix(frontend): accept trae client submissions by @IvGolovach in #640
- fix(tui): honor compatible colors in Apple Terminal by @IvGolovach in #629
- fix(groups): guard member mutations against stale roles by @IvGolovach in #626
- feat(tui): add Cost/1M column to Models, Daily, Hourly tabs by @crhan in #632
- fix(submit): aggregate device time totals by @IvGolovach in #627
- fix(release): support safe npm publish recovery by @IvGolovach in #620
- fix(codex): skip replayed fork token counts by @IvGolovach in #630
- fix(claude): count tool-result input usage by @IvGolovach in #622
- feat(warp): add aggregate usage sync by @IvGolovach in #636
- feat(antigravity): discover Windows language servers by @IvGolovach in #628
- ci: update coverage badge [skip ci] by @github-actions[bot] (d692d31)
- feat(claude): discover cc-mirror variants by @IvGolovach in #618
- fix(scanner): support zed extra scan paths by @makoMakoGo in #643
- feat(codex): detect turn starts so the Turn column counts codex turns by @crhan in #646
- test(cli): isolate fixtures from inherited scan-path env vars by @crhan in #647
- Fix Antigravity IDE sync by @SaulMoreno3 in #642
- fix(codex): skip replayed parent usage in fork logs by @IvGolovach in #649
- fix(claude): surface desktop usage diagnostics by @IvGolovach in #614
- fix(pricing): skip unusable exact price entries by @IvGolovach in #658
- feat(pricing): add models.dev fallback source by @IvGolovach in #665
- fix(auth): require CSRF validation for cookie mutations by @IvGolovach in #615
- fix(auth): allow tokscale.ai CSRF origin by @IvGolovach in #652
- fix(auth): claim device codes atomically by @IvGolovach in #654
- fix(auth): hash browser session tokens at rest by @IvGolovach in #625
- fix(auth): constrain GitHub OAuth return paths by @IvGolovach in #664
- fix(leaderboard): use competition ranks for all-time ties by @IvGolovach in #655
- fix(claude): preserve cc-mirror tool result attribution by @IvGolovach in #659
- fix(core): derive active time from message durations by @IvGolovach in #657
- fix(graph): reuse local Cursor auto-sync path by @IvGolovach in #656
- fix(headless): preserve capture timeout state by @IvGolovach in #663
- fix(antigravity): include cache rows in default submit by @IvGolovach in #653
- test(auth): align device authorize tests with guarded claims by @IvGolovach in #671
- fix(warp): scan aggregate usage cache files by @IvGolovach in #662
- fix(release): validate publish inputs before version bump by @IvGolovach in #660
- test(core): isolate Zed path test from XDG_DATA_HOME by @IvGolovach in #672
- fix(release): guard publish dist-tags and matrices by @IvGolovach in #666
- Add Codex fork replay regression for submit cap failures by @minislively in #651
- feat(tui): compact date display in Hourly & Daily tabs (fix '2026-0…' truncation) by @crhan in #635
- ci: update coverage badge [skip ci] by @github-actions[bot] (591e1b1)
- feat(cline): add Cline support by @Jackson57279 in #661
- fix(frontend): render source logos from shared registry by @IvGolovach in #676
- feat(clients): add gajae-code (gjc) as a tracked client by @seungminio in #685
- fix(docs): remove hard-coded maintainer Git identity from AGENTS.md by @thedavidweng in #680
- fix(codex): scope token dedup key to fork parent so subagent replays collapse by @RedesignedRobot in #681
- feat: display MCP servers in profile Statistics panel by @leecoder in #675
- fix(ci): register gjc client registry entries and apply cargo fmt by @junhoyeo in #690
- fix(db): reorder 0012 timestamp after 0011 so drizzle-kit applies it by @junhoyeo in #687
- docs(readme): point Cline logo at github.com/cline.png by @junhoyeo (2a761ce)
- docs(readme): add Kiro and Warp logos, unify all SOURCE_LOGOS at resolvable URLs by @junhoyeo (35ddc94)
- feat(submit): remove all per-day token/cost size caps by @junhoyeo in #691
- fix(frontend): promote token count display at unit boundaries by @thedavidweng in #689
- fix(db): widen total_cost and daily cost columns to avoid numeric overflow by @junhoyeo in #692
- fix(ci): drop --offline from cargo update --workspace in publish job by @junhoyeo (98c1c70)
New Contributors
- @thedavidweng made their first contribution in #680
- @RedesignedRobot made their first contribution in #681
- @seungminio made their first contribution in #685
- @Jackson57279 made their first contribution in #661
- @SaulMoreno3 made their first contribution in #642
Full Changelog: v3.0.0...v3.1.0
