v0.2.3
May 12, 2026 · View on GitHub
主题
把本地用量从 v0.1.2 的"一次性 30 天估算"升级为持久化事实存储层:~/.config/usage-bar/data/<provider>/ 下按 UTC 年月分文件持久化 raw events,另维护按天/月/年三个聚合文件;增量采集(per-file 游标,挂 polling timer 但只读变动文件);USD 不落盘、前端按当前价格表实时折算(价格表升级后历史自动重算);popover 新增 GitHub 贡献图风格的消费热力图。supersede 2026-05-11-local-cost-scan。provider 抽象仅做目录结构预留,Codex 采集留后续 spec。
含隐私架构守护延续:parser schema 不读 message.content;含 sessionId 的文件 0600;错误日志只 log error type。
含 spec
2026-05-12-usage-store-redesign— 按 provider 持久化 raw events + 聚合 + 消费热力图
验收(G6 checklist)
- spec 的 spec_criteria SC1~SC14 全 done
-
swift build -c releaseBuild complete! /swift testExecuted 160 tests, with 0 failures(make release-artifacts在发版 runbook G7 跑) - SC_AUTO_NO_PRINT_TOKENS / NO_REAL_TOKEN_PREFIX / NO_CONTENT_READ 全 0 匹配
- SC_AUTO_LOCALCOSTSCANNER_GONE(LocalCostScanner.swift + 其测试已删)
- 已用过 Claude CLI 的用户启动 .app 看到消费热力图 — 由用户在 popover 目视(开发会话无法启动菜单栏 app 验证渲染)
- CHANGELOG.md 已 append v0.2.3 entry
- 本文件
release_notes_zh已填写
发版(G7 checklist)
-
docs/runbooks/release.md全流程跑通 - tag 已推送,Sparkle appcast 已更新
- GitHub Release 已创建,资源(zip/dmg)已上传
- 24h health 回访通过
参考 v0.1.x 用户偏好:v0.2.x 阶段累积,统一在合适节点考虑打 tag。
Release notes (zh)
从 frontmatter
release_notes_zh同步过来(发版 runbook 时复制到 CHANGELOG.md)。
v0.2.3 — 用量统计与存储重设计
改进(Changed):
- 本地用量从「一次性 30 天估算」升级为持久化存储:
~/.config/usage-bar/data/claude/下按月份文件保存每次调用的 token 明细,另维护按天/月/年三个聚合文件 - 后台采集改为递归增量:递归扫描
~/.claude/projects/下任意层级.jsonl(含 subagents 三层深),游标每轮批量 flush 一次;启动时一次性回填全部历史 - 金额不落盘:明细与聚合只存 token 数,金额按当前价格表实时折算
新增(Added):
- popover 新增 GitHub 贡献图风格的消费热力图:从最早有数据那天铺到今天(不限一年),打开时默认滚到最右;悬停某格 → 网格下方一行显示「日期 · ≈ $X · N 次」
- 估算卡跟随趋势图时间范围 picker(1h/6h/1d/7d/30d);版块顺序:趋势图 → 估算卡 → 热力图
- per-model 明细行新增 token 总数;金额/token 紧凑单位(K/M/B/T);金额前缀简化为「$」;collapsed 头部 icon 展示金额/次数/token
内部(Internal):
- 新增 UsageEventStore / ScanCursorStore / ClaudeUsageCollector / UsageAggregator / UsageStatsService / UsageHeatmapView;退役 LocalCostScanner;清理 v0.1.2 旧 Caches
- 损坏月明细 → 游标重置全量重读(避免 pre-cursor 事件丢失);已统计数据不随源文件删除而清除
- 隐私守护延续:parser 不读
message.content;含 sessionId/路径的文件 0600 目录 0700;错误日志只记录类型 - 多账号:本机统计跨账号,切换账号不再清空/重算
- 已知遗留:两处 Swift-6 严格并发警告(Swift 5.9 下无害,待统一处理)