# Changelog

## Score

- CAI 56 → 58 (+1.7)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

## Lenses

- Code Health 75 → 75 (+0.1)
- Architecture 97 → 90 (-6.6)
- Maturity 67 → 67 (-0.1)
- Readiness 43 → 43 (+0.5)
- Security 60 → 69 (+8.5)
- Event Sourcing 100 → 100 (+0.0)
- Accessibility 68 → 68 (+0.0)
- Performance 85 (new)

## Resolved (118)

- Change coupling: main.rs ↔ mod.rs (crates/tokscale-cli/src/main.rs)
- Change-coupling hub: constants.ts → main.rs, client_ui.rs, lib.rs, scanner.rs, mod.rs (packages/frontend/src/lib/constants.ts)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no pnpm-resolved versions to grade)
- Documentation: no installation or build instructions (README.md)
- Duplicated block (10 lines × 2) (crates/tokscale-core/src/pricing/lookup.rs)
- Duplicated block (11 lines × 2) (crates/tokscale-cli/src/tui/ui/stats.rs)
- Duplicated block (11 lines × 2) (crates/tokscale-core/src/lib.rs)
- Duplicated block (11 lines × 2) (crates/tokscale-core/src/sessions/mcode.rs)
- Duplicated block (13 lines × 2) (crates/tokscale-cli/src/tui/ui/usage.rs)
- Duplicated block (14 lines × 2) (crates/tokscale-cli/src/tui/ui/mod.rs)
- Duplicated block (16 lines × 2) (crates/tokscale-core/src/sessions/kiro.rs)
- Duplicated block (16 lines × 6) (crates/tokscale-cli/src/tui/ui/daily.rs)
- Duplicated block (18–19 lines × 8) (crates/tokscale-cli/src/tui/ui/agents.rs)
- Duplicated block (18–20 lines × 3) (crates/tokscale-cli/src/tui/ui/agents.rs)
- Duplicated block (23–31 lines × 9) (crates/tokscale-cli/src/tui/ui/agents.rs)
- Duplicated block (25–45 lines × 8) (crates/tokscale-cli/src/tui/ui/agents.rs)
- Duplicated block (29 lines × 2) (crates/tokscale-cli/src/tui/ui/projects.rs)
- Duplicated block (49–53 lines × 5) (crates/tokscale-cli/src/tui/ui/daily.rs)
- Duplicated block (5 lines × 2) (crates/tokscale-cli/src/tui/ui/dialog/group_by_picker.rs)
- Duplicated block (55–57 lines × 4) (crates/tokscale-cli/src/tui/ui/daily.rs)
- …and 98 more

## New (105)

- Change-coupling hub: constants.ts → main.rs, client_ui.rs, clients.rs, lib.rs, scanner.rs, mod.rs (packages/frontend/src/lib/constants.ts)
- Documentation: no architecture or design documentation (docs/providers/sakana.md)
- Duplicate functionality between `PricingLookup` and `PricingService`. Both classes expose identical method signatures for cost calculation (`calculate_cost` and `calculate_cost_with_provider`). It is unclear why `PricingService` duplicates this logic if it likely wraps or uses `PricingLookup` internally. This creates two entry points for the same business logic.
- Duplicated block (10 lines × 2) (crates/tokscale-cli/src/tui/ui/daily.rs)
- Duplicated block (11 lines × 2) (crates/tokscale-core/src/pricing/lookup.rs)
- Duplicated block (12 lines × 2) (crates/tokscale-cli/src/tui/ui/daily.rs)
- Duplicated block (12 lines × 2) (crates/tokscale-core/src/sessions/mcode.rs)
- Duplicated block (12 lines × 4) (crates/tokscale-core/src/message_cache.rs)
- Duplicated block (13 lines × 2) (crates/tokscale-cli/src/tui/ui/stats.rs)
- Duplicated block (13 lines × 2) (crates/tokscale-core/src/message_cache.rs)
- Duplicated block (14 lines × 2) (crates/tokscale-core/src/sessions/junie.rs)
- Duplicated block (15 lines × 2) (crates/tokscale-core/src/sessions/mcode.rs)
- Duplicated block (15–16 lines × 2) (scripts/9router_tokscale_bridge_gjc.py)
- Duplicated block (16 lines × 2) (crates/tokscale-cli/src/tui/ui/mod.rs)
- Duplicated block (16 lines × 8) (crates/tokscale-cli/src/tui/ui/agents.rs)
- Duplicated block (18 lines × 2) (crates/tokscale-cli/src/tui/ui/agents.rs)
- Duplicated block (18 lines × 2) (crates/tokscale-core/src/message_cache.rs)
- Duplicated block (18 lines × 2) (crates/tokscale-core/src/message_cache.rs)
- Duplicated block (18 lines × 5) (crates/tokscale-cli/src/tui/ui/daily.rs)
- Duplicated block (19 lines × 2) (crates/tokscale-cli/src/tui/ui/dialog/group_by_picker.rs)
- …and 85 more

## Changes since last survey

- 35 commits — 17 feature/other, 18 fixes

## By area

- crates/tokscale-core — 21 commits
- crates/tokscale-cli — 6 commits
- (root) — 5 commits
- .github/badges — 2 commits
- packages/frontend — 1 commit

## Notable commits

- fix: fix(antigravity-cli): date modern agy turns from steps table timestamps (#1184) (#1327)
- fix: fix(antigravity-cli): read logged ports from the head of per-session logs (#1339)
- fix: fix(claudecode): price Claude Code 1-hour cache writes at the 1-hour rate (#1374)
- fix: fix(clients): Codex tier source, Antigravity ledger reconciliation, import backfill, recovery ledger docs (#1365)
- fix: fix(clients): correct MiMo, MiniMax and Muse usage accounting (#1355)
- fix: fix(cline): resolve model identity from per-message modelInfo (#1340)
- fix: fix(devin): deduplicate CLI rows by request ID
- fix: fix(dsh): count usage from embedded assistant attempts
- fix: fix(dsh): read versioned session.v<N>.jsonl transcripts (#1328)
- fix: fix(http): trust webpki roots alongside native certs so SSL_CERT_FILE overrides stay additive (#1344)
- fix: fix(kiro): estimate input/cache split from content and price credits (#1342)
- fix: fix(mcode): parse stream-json completion envelopes
- fix: fix(openclaw): decode compressed SQLite transcript payloads
- fix: fix(pricing): let OpenRouter participate across version-separator spellings (#1338)
- fix: fix(pricing): prefer the standard service tier among an author's OpenRouter endpoints (#1336)
- fix: fix(scanner): scan WorkBuddy 5.5 sessions under ~/.workbuddy-ai (#1337)
- fix: fix(tui): preserve a symlinked settings.json when saving
- fix: fix: keep recovery-only days in import --submit and finish TUI localization (#1371)
- change: Update Oh My Pi link and image in README
- change: chore: bump version to 4.17.0
- …and 15 more
