v1.8.34
What's Changed
- perf(reader): kill the quadratic rescan, then cut lines straight out of the chunk by @VincentShipsIt in #336
- perf(cost): skip oversized transcript lines before parsing by @VincentShipsIt in #337
- fix(scanners): salvage oversized JSONL lines instead of dropping them by @VincentShipsIt in #342
- feat(pricing): price events at the rate in effect at their timestamp by @VincentShipsIt in #351
- fix(costs): move scan status to the card's trailing edge by @VincentShipsIt in #347
- feat(menubar): opt-in timed rotation of providers in merged mode by @VincentShipsIt in #350
- feat(menubar): follow the focused app in merged mode by @VincentShipsIt in #352
- feat(optimize): rank providers by remaining headroom by @VincentShipsIt in #353
- perf(cost): scan the corpus in resumable, budgeted slices on one serial queue by @VincentShipsIt in #344
- perf(cost): parse transcripts in parallel, fold them serially in file order by @VincentShipsIt in #345
- perf(cost): incremental per-file scan cache by @VincentShipsIt in #346
- harden(cost): version and bound the scan cache artifact by @VincentShipsIt in #343
- fix(cost): speed up scans and clean up cost views by @VincentShipsIt in #354
- feat(dashboard): add token activity heatmap by @VincentShipsIt in #358
- harden(cost): surface resumable cost-scan cache write failures by @VincentShipsIt in #357
- perf(cost): replace generic Data.contains with range(of:) in the rollout scan by @VincentShipsIt in #355
- fix(cost): five correctness fixes across pricing, scan persistence, and menu-bar selection by @VincentShipsIt in #363
- fix(share): honest share-card freshness, mid-scan export warning, and pin/rotation exclusivity by @VincentShipsIt in #360
- fix(cost): budget the Codex fold fallback, recover usage past the truncation cap, and surface dropped records by @VincentShipsIt in #365
- refactor(cost): drop the orphaned parallel scan and DRY the token fold by @VincentShipsIt in #362
- fix(settings): let the row label column use the width it has by @VincentShipsIt in #366
- feat(cost): scan the Grok corpus so its spend reaches the charts by @VincentShipsIt in #367
- feat: narrow the recent-activity windows to a week and a month by @VincentShipsIt in #368
- feat(cost): give Cursor and OpenRouter a dated series by polling by @VincentShipsIt in #369
- chore(release): bump MARKETING_VERSION to 1.8.34 by @VincentShipsIt in #370
- feat(dashboard): stale-login one-liners, 7/30-day cost window, cleaner status rows by @VincentShipsIt in #371
Full Changelog: v1.8.33...v1.8.34