Skip to content

[codex] 发布 Codex Token Usage 0.1.6:账本聚合与历史恢复#7

Open
kokotao wants to merge 1 commit into
mainfrom
codex/token-usage-0.1.6-source-release
Open

[codex] 发布 Codex Token Usage 0.1.6:账本聚合与历史恢复#7
kokotao wants to merge 1 commit into
mainfrom
codex/token-usage-0.1.6-source-release

Conversation

@kokotao
Copy link
Copy Markdown
Owner

@kokotao kokotao commented Jun 3, 2026

背景

codex-token-usage-script 源码仓库需要与已经发布到 ScriptMarket 的 0.1.6 保持一致。本次主要补齐 token 统计账本聚合、会话/轮次隔离、历史恢复能力,以及对应的测试覆盖。

用户侧问题

在旧实现中,存在几类明显问题:

  1. 来回切换会话后,插件可能继续显示切换前会话的统计信息。
  2. 同一轮回复内如果发生多次模型调用,最终经常只显示 调用 1 次
  3. 统计显示更像是“最后一次调用”,而不是“本轮调用合计”。
  4. 程序重启且缓存丢失后,无法从历史对话中恢复最近一轮统计。
  5. 耗时展示固定是秒,不够直观。

根因分析

根因主要有三类:

  1. 统计状态过度依赖最后一次观测值,没有按 turn 维护稳定账本。
  2. 去重逻辑太粗,导致跨 source 事件会错误覆盖,最终把多次调用折叠为一次。
  3. 会话、项目、轮次三层隔离不足,context-only 事件也可能污染上一轮或另一个会话。

本次改动

1. 双层账本聚合

  • 改为 ledger-first 聚合与展示投影。
  • 将展示文案从“总计”调整为“本轮调用合计”。
  • 增加 requestTotalTokensinputTotalTokensoutputTotalTokenscachedReadTokenstotalEstimated 等字段。

2. 隔离与去重增强

  • 增加 project / conversation / turn 三层隔离。
  • 增强同一轮内 usage 事件与 context-only 事件的聚合逻辑。
  • 提升跨 source 去重精度,避免多次调用塌缩为 1 次。

3. 历史恢复能力

  • 新增 restoreHistoryForConversation(conversationId, options)
  • 支持通过 bridge 恢复历史 token usage,并重建当前会话最近一轮统计。

4. 展示与调试能力

  • 新增 export() 导出调试快照。
  • 耗时支持按秒 / 分钟 / 小时自动格式化。
  • running 展示时机保持为消息发送后触发,不因输入框输入而提前出现。

5. 版本升级

  • package.json 升级到 0.1.6
  • index.json 更新版本、描述和 sha256

验证

已执行并通过:

  • node --check scripts/codex-token-usage.js
  • npm test
  • npm run check:index

其中测试结果为 40/40 通过。

备注

程序重启后“无缓存恢复历史统计”的完整能力,需要宿主侧提供 thread usage history bridge;对应宿主改动已在配套 PR 中处理。本 PR 聚焦源码仓库与已发布市场版本对齐。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant