Skip to content

修复每日 Token 跨日统计、主题及新版顶栏兼容问题 - #84

Open
kts-kris wants to merge 1 commit into
BigPizzaV3:mainfrom
kts-kris:fix/daily-token-usage-1.4.18-rebase
Open

修复每日 Token 跨日统计、主题及新版顶栏兼容问题#84
kts-kris wants to merge 1 commit into
BigPizzaV3:mainfrom
kts-kris:fix/daily-token-usage-1.4.18-rebase

Conversation

@kts-kris

Copy link
Copy Markdown
Contributor

背景

该 PR 按维护者在 #77 中的意见重新提交,替代已关闭且与 main 冲突的 #77

本次没有在旧分支上继续叠加 merge commit,而是从最新 origin/main90e8415)新建干净分支,将最终脚本和回归测试完整移植,并仅定点更新 index.jsoncodex-daily-token-usage 的条目。

冲突处理

  • 最新 main 是当前分支的直接祖先;
  • 当前分支仅领先 main 1 个整理后的提交;
  • git merge-tree --write-tree origin/main HEAD 成功,无冲突;
  • 保留了 main 新增的全部市场脚本;
  • index.json 只修改本插件的描述、版本和 SHA-256;
  • 主脚本和测试与 修复每日 Token 跨日统计、主题及新版顶栏兼容问题 #77 最终提交 665b4e7 逐字节一致。

处理内容与用户价值

1. 独立补齐最近 5 日历史用量

  • 适配新版 Codex renderer RPC,通过 localThreadCatalog 获取任务,通过 workspaceFiles.read 读取本机 session JSONL;
  • 保留旧 app-server dispatcher 作为兼容回退;
  • 未安装或无法使用 Codex Token Usage 时,仍可独立完成统计;
  • 本地仅滚动保留最近 5 日数据。

用户价值: 重启 Codex、首次打开插件或切换历史任务后,不再只看到脚本加载后的局部用量,也不强制安装另一个统计插件。

2. 修复跨日累计和重复计数

  • 按每条 token_count 的真实时间归档,不再依赖 JSONL 文件创建日期;
  • 对相邻 total_token_usage 做差分,累计值重置时回退到 last_token_usage
  • 按日期和 Model 聚合输入、输出、缓存输入、推理 Token 与请求次数;
  • 只有全部候选 session 成功读取后才推进历史覆盖边界,并清理已被历史数据覆盖的旧实时记录。

用户价值: 避免累计值直接相加造成虚高,也避免长期复用任务产生漏算。

3. 修复主题、输入和价格面板

  • 增加 Codex 实际使用的 html.electron-dark 样式;
  • 日期和价格输入在刷新期间保持编辑状态;
  • 价格设置展开后,详情面板受视口约束并可纵向滚动;
  • 更新默认 OpenAI Model 价格参考项,用户自定义字段仍优先。

用户价值: 深色模式下可读,编辑不丢焦点,Model 较多时仍能滚动看到底部内容。

4. 新版顶栏兼容与动态避让

  • 支持 ApplicationMenuTopBarmenubar 和旧 .app-header-tint
  • 支持当前 Codex++ 1.2.52 的顶部全宽 fixed draggable header;
  • 删除无约束的通用 header 回退,避免误选会话内容区的窄标题栏;
  • 默认右侧安全距离从 280px 调整为原生窗口控制区的 132px
  • 后出现的原生按钮会触发入口自动左移,空间不足时才切换 compact icon。

用户价值: 新建会话、加载旧会话、窗口缩放或原生按钮后出现时,统计入口保持在真正的窗口顶栏,不遮挡按钮,也不会在空间充足时错误缩成 icon。

5. 大会话性能回归

保留 day cache、版本签名、时间索引匹配和 MutationObserver 工具扫描 debounce。226 个 turn、314 条工具事件的回归场景未发现性能退化。

版本与清单

  • 脚本版本:1.4.18
  • index.json 版本与脚本一致;
  • SHA-256:51cfffe284ae331e4aeb5c60b2d5fe5547cb2b16c8dd90b9e2b67a7ad92d2807

自动化验证

node --check scripts/codex-daily-token-usage.js
node tests/codex-daily-token-usage.test.js
node --test tests/*.test.js
CODEX_DAILY_TOKEN_USAGE_SCRIPT=... node ../test-codex-daily-token-usage.js
jq empty index.json
git merge-tree --write-tree origin/main HEAD

验证结果:

  • 仓库完整测试 12/12 通过;
  • 外层历史统计与布局专项测试通过;
  • 脚本 SHA-256 与市场清单一致;
  • 覆盖跨日差分、历史/实时去重、Model 聚合、价格与暗色样式、面板滚动、顶栏识别和动态障碍避让。

真实环境验证

在 Codex++ 1.2.52、Codex Desktop 26.818.41509 中验证:

  • 根节点挂载于 BODY,定位为 fixed
  • 入口与现有顶栏按钮无重叠;
  • 动态插入占位按钮后入口自动左移且保持非 compact;
  • 按钮移除后入口恢复原位;
  • 热加载前后今日 Token 总量保持一致。

Supersedes #77

Closes #35
Closes #37

#62 已关闭,本 PR 仅做回归验证。

Related to #82

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.

Bug: codex-daily-token-usage script causes UI layout corruption Codex Daily Token Usage 暗黑模式、输入框和趋势悬浮显示异常

1 participant