github junhoyeo/tokscale v4.14.0

3 hours ago

Tokscale

tokscale@v4.14.0 is here!

What's Changed

  • refactor(sessions): share read-only SQLite opening by @junhoyeo in #1093
  • feat(submit): expose reconciliation census gate inputs by @IvGolovach in #1083
  • fix(pricing): separate estimates from submission-safe matches by @IvGolovach in #1084
  • fix(cache): preserve completeness when merging retained and live messages by @IvGolovach in #1085
  • fix(claude): discover sessions under CLAUDE_CONFIG_DIR instead of a fixed ~/.claude root by @Excelius-Wang in #1102
  • refactor(core): consolidate direct cached parse lanes by @junhoyeo in #1094
  • fix(cache): read source cache shards lazily and release consumed payloads by @junhoyeo in #1108
  • fix(cache): preserve live Claude metadata when merging completeness by @junhoyeo in #1110
  • fix(claude): resolve diagnostics cache from config root by @junhoyeo in #1109
  • fix(pricing): reject cross-provider model-part submissions by @junhoyeo in #1111
  • ci: update coverage badge [skip ci] by @github-actions[bot] (e903173)
  • fix(cli): align month titles with bucket dates by @junhoyeo in #1096
  • test(tui): isolate cache and widget config tests by @junhoyeo in #1097
  • fix(tests): isolate core and CLI cache fixtures by @junhoyeo in #1098
  • fix(senpi): discover OmO task child sessions by @ashmoonori-afk in #1113
  • fix(senpi): discover OmO child sessions without duplicate scans by @junhoyeo in #1115
  • feat(clients): add Cherry Studio support (#1105) by xmL (0db29e9)
  • feat(clients): add Cherry Studio support by @sakuralmx in #1105
  • fix(clients): follow a redirected home for the AppData scan root by @junhoyeo in #1121
  • test(claude): cover retained-completed vs live-partial cross-file merge by @junhoyeo in #1118
  • fix(claude): select model-scoped weekly limits by kind, not is_active by @junhoyeo in #1119
  • fix(droid): attribute session usage to the replies that spent it, and bound it server-side by @junhoyeo in #1120
  • fix(pricing): break equal-length candidate key ties deterministically by @Yuxin-Qiao in #1092
  • test: make the #1092 tiebreak regression non-vacuous and de-flake the TUI cache tests by @junhoyeo in #1125
  • fix(workspace): make workspace rows distinguishable as rendered, and bound the filesystem work behind them by @junhoyeo in #1124
  • ci: update coverage badge [skip ci] by @github-actions[bot] (e8ee234)
  • feat(clients): add DeepSeek Harness support by @junhoyeo in #1126
  • fix(cli): force HTTP/1.1 for Windows Antigravity RPC to prevent multiplexing freeze by @marshallcodes in #1127
  • feat: add ccusage import format by @aron-intframe in #1128
  • fix(core): preserve records after invalid JSONL bytes by @junhoyeo in #1095
  • ci: update coverage badge [skip ci] by @github-actions[bot] (05000f9)
  • fix(antigravity): stop re-probing plaintext on a port already known to speak TLS by @junhoyeo in #1130
  • test(claude): pin that the provenance rebuild clears a stale char estimate by @junhoyeo in #1139
  • fix(core): recover BOM-prefixed Pi transcripts and align Prime's accounting walk by @junhoyeo in #1134
  • refactor(core): share one SQLite driver across the OpenCode-schema parsers by @junhoyeo in #1133
  • perf(cli): drop the image codecs and SVG font stacks nothing renders by @junhoyeo in #1132
  • refactor(core): share SQLite, usage-struct and JSONL drivers across the session parsers by @junhoyeo in #1137
  • perf: replace vendored OpenSSL with rustls by @junhoyeo in #1138
  • fix(wrapped): point the OpenClaw logo at a URL that resolves by @junhoyeo in #1141
  • refactor(core): put the Pi-format parsers on the shared session drivers by @junhoyeo in #1143
  • fix(antigravity-cli): resolve routing-label rows from display labels by @azestkingscrown in #1131
  • feat: add MiniMax Code headless usage tracking by @hetaoBackend in #1136
  • fix(pricing): resolve OpenAI Daybreak Blue alias by @aravhawk in #1140
  • fix(pricing): correct MiniMax-M3 first-party rates in alias regression fixture by @octo-patch in #1144
  • fix(codex): stop counting reasoning tokens twice by @junhoyeo in #1146
  • fix(pricing): price Kimi Work models and correct the kimi-for-coding target by @junhoyeo in #1147
  • fix(frontend): make quickstart label scroll to commands by @xtianxx in #1135
  • feat(clients): add fx (vercel-labs) session parsing by @thedavidweng in #1160
  • fix(cursor): preserve exported token buckets and costs by @carlosflorencio in #1154
  • fix(opencode): support session_v2 metadata by @nulluserid in #1156
  • style(opencode): satisfy rustfmt in session_v2 tests by @junhoyeo (ee26e61)
  • ci(release): fail fast when the release base is stale by @junhoyeo (b069c85)
  • docs(readme): document submit exclusion warnings and the custom-pricing fix path by @thedavidweng in #1167
  • fix(scanner): remove nested par_bridge to prevent futex deadlock on large directories by @aruru10313 in #1164
  • fix(cli): do not wait on stdout pump thread if headless capture times out by @aruru10313 in #1166
  • feat(submit): print a fix hint after unpriced-exclusion warnings by @thedavidweng in #1168
  • fix(dsh): count the compaction summarize call, and close two hygiene gaps by @junhoyeo in #1162
  • feat(kimi): discover Kimi Work sessions natively by @REMIXPLAYER in #1170
  • fix: close two hang/double-count gaps found by adversarial review by @junhoyeo in #1173
  • fix(tui): rebuild the aggregate cache when the parser generation changes by @junhoyeo in #1174
  • chore(cache): delete the pre-v2 monolith once the shard cache is in use by @junhoyeo in #1176
  • chore: resolve strict Clippy warnings by @aruru10313 in #1172
  • feat(import): attribute ccusage --by-agent rows to the agent that reported them by @aron-intframe in #1190
  • fix(antigravity): parse standalone usage timestamps by @jh-qu in #1151
  • fix(core): parse kind-1 updates for VS Code Copilot Chat v3 by @aruru10313 in #1182
  • feat(profile): add weekly and monthly ranks by @0thernet in #1179
  • feat(embed): add weekly and monthly stats and ranks by @0thernet in #1178
  • feat(tui): add light mode (white background) toggle to the interactive TUI by @YunhaoFu in #1177
  • feat(usage): add OpenCode Go subscription usage provider by @stevejkang in #1189
  • fix(usage): respect Retry-After on Claude 429 and block requests during cooldown by @stevejkang in #1188
  • fix(pricing): resolve provider-specific model aliases by @Jackson57279 in #1186
  • fix(cursor): extend timeout to 120s for explicit sync of large CSV exports by @aruru10313 in #1183
  • fix(cli): work around an Antigravity RPC sync hang on Windows via curl.exe fallback by @marshallcodes in #1180
  • fix(copilot): support GH_TOKEN env and legacy Windows hosts path for credential detection by @xtianxx in #1191
  • feat(sessions): add Oh My Pi (omp) as a local session source by @bn852j6nky-code in #1161
  • fix(leaderboard): match period rank tiebreakers across profile and embed surfaces by @junhoyeo in #1192
  • fix(antigravity-cli): read the per-generation timestamp from the agy 1.1.18 gen_metadata layout by @junhoyeo in #1196
  • fix(cli): show per-1M prices below a cent instead of rounding them to $0.00 by @junhoyeo in #1197
  • fix(pricing): keep the Kimi subscription namespace out of provider-scoped evidence by @junhoyeo in #1200
  • fix(antigravity-cli): only infer generation timestamps against a decoded session anchor by @junhoyeo in #1202
  • fix(cli): isolate the Windows Antigravity curl fallback from proxy and user config by @junhoyeo in #1203
  • fix(pricing): keep subscription-namespace exact matches out of submission by @junhoyeo in #1204
  • fix(cli): bound the Windows Antigravity RPC response while it is read by @junhoyeo in #1205
  • fix(opencode): bump the parser version for session_v2 metadata selection by @junhoyeo (06ad948)
  • fix(cursor): bound the CSV export body while it is read by @junhoyeo (b6eddc4)
  • fix(fx): reflect sidecar metadata changes instead of serving a cached parse by @junhoyeo (aaad3f1)
  • fix(submit): bound antigravity-cli submissions by the lifetime high-water by @junhoyeo (a8329aa)
  • fix(fx): keep an unreported snapshot cost out of the authoritative path by @junhoyeo (f73030f)
  • fix(fx): key session-title lookup on the sessions directory, not the id alone by @junhoyeo (0479ee8)
  • fix(usage): bound the OpenCode Go response body instead of buffering it whole by @junhoyeo (c802cf6)
  • fix(antigravity): bound the optional trajectory enrichment during sync by @junhoyeo (97886c3)
  • fix(submit): bound IDE antigravity submissions by the lifetime high-water by @junhoyeo (e3b53f7)
  • fix(dsh): bound transcript reads and zstd expansion by @junhoyeo (e746d2b)

New Contributors

Full Changelog: v4.13.0...v4.14.0

Don't miss a new tokscale release

NewReleases is sending notifications on new releases.