15 Commits
Author SHA1 Message Date
ysicing 12e8b4d934 feat(ai-usage): 完善套餐信息与菜单栏用量展示 2026-10-03 21:43:43 +08:00
ysicing 0d8f68372d feat(ai-usage): 按时间范围展示小时与每日用量 2026-10-03 20:24:19 +08:00
ysicing e33fa55154 feat(ai-usage): 添加显示偏好与费用估算 2026-10-03 20:24:09 +08:00
ysicing 1a222519e5 perf: 优化用量扫描与弹窗布局 2026-09-29 16:33:03 +08:00
ysicing ffb2bba651 fix(process): 避免子进程退出时无限等待 2026-09-28 22:54:08 +08:00
ysicing 451b3f794e fix(ai-usage): 避免额度读取阻塞并去重窗口 2026-09-27 19:26:46 +08:00
ysicing 1ad2258a95 fix(ai-usage): 修复 Codex 额度查询与管道崩溃 2026-09-27 17:44:06 +08:00
ysicing 84bed521d4 fix(ai-usage): 修复额度失效与圆点排版 2026-09-24 07:59:55 +08:00
ysicing f636af7f03 feat(ai-usage): 缓存额度并修复菜单栏预览 2026-09-24 06:59:29 +08:00
ysicing cb2b57eb79 feat(ai-usage): 支持 Codex 与 Claude 的 Sub2API 备用额度 2026-09-23 23:46:15 +08:00
ysicing c7e4a34e91 feat(ai-usage): 增加订阅额度与剩余进度展示 2026-09-23 20:26:35 +08:00
ysicing a0a15a69fd fix(ai-usage): 保留窗口按当天重算,刷新排队不再被丢弃
两处来自 PR 评审的缺陷,均已用回归测试复现:

保留窗口此前作为 cutoff 存进了检查点,而检查点会被原样恢复,那个日期
因此永远停在首次扫描那天。取数时又没有再过滤,超出 365 天的事件既出不了
报告也出不了检查点。改为不在解析状态里裁剪、一律在取数时按当天重算。
测试:同一文件 300 天前的事件,400 天后复扫必须离开报告。

刷新此前遇到在途刷新就直接返回,而轮询任务把这次返回当成“首次刷新已完成”,
接着睡满整个周期(最长 60 分钟);那次在途刷新的结果又会因 generation 变化
被丢弃,于是关掉再打开统计后页面会一直空着。改为串行排队,并在 stop() 与
停止轮询时显式取消在途扫描——排队链上的任务是非结构化的,不会自动取消。
测试:在途刷新期间到来的刷新必须真正执行;stop() 必须取消在途扫描。

ClaudeLocalUsageProvider 增加可注入时钟,用于验证时间推移后的窗口行为。
2026-09-23 08:50:41 +08:00
ysicing 3575a97de5 fix(ai-usage): 修正子代理回放判定并清理配额时代残留
修复子代理与 fork 会话的 Token 全量丢失:原判定要求 task_started 带
started_at 且不早于会话创建时间才结束回放,但子代理的 started_at 是父级
回合的开始时间,天然早于子会话文件,新版 Codex 更是完全不发该字段。改为
首个 task_started 无条件结束回放——实测 661 个真实 rollout 中没有任何一个
的 token_count 出现在它之前。本机语料 A/B:Token 13.60G → 14.53G(+6.8%),
用量记录 68997 → 73566。

其他修复:
- 两个 Provider 钉到专用串行执行器,冷扫描不再占用协作线程池。把池限制
  成一条线程实测,修复前并行的每秒采样在 43 秒扫描期间一次都没能推进。
- 按日期与模型聚合并定序输出,行数 701 → 272 且 id 唯一;顺带修掉冷扫描
  与检查点恢复顺序不一致导致每次刷新都产生"不相等"报告的问题。
- 缓存行加剪枝,覆盖归档搬走的 rollout、删除的项目目录与旧解析命名空间;
  检查点仅在末行未完时存第二份状态,Claude 事件按保留窗口裁剪。
- 复用 ISO8601 解析器,不再逐行创建。
- 数字与日期改跟随应用语言,弹窗与菜单栏共用同一套 Token 缩写。
- 窄弹窗热力图按设计尺寸铺开后横向滚动,此前被钉在面板宽度上永不溢出。
- 打开菜单栏项一并开启扫描,并为无数据状态补上悬停文案。
- 删除未被应用构造的配额 Provider、凭据读取与响应映射(约 330 行)及其
  全链路管线,并清掉 37 条孤立译文 × 8 个语言文件。
2026-09-23 08:50:41 +08:00
ysicing 6ba59fe150 feat(ai-usage): 添加本机模型统计与年度活动视图 2026-09-23 08:50:41 +08:00
ysicing e44de0bf35 feat(ai-usage): 集成 Codex 只读配额监控 2026-09-23 08:50:41 +08:00