Skip to content

feat(core): improve DeepSeek Harness usage collection - #42

Open
yudaxia1 wants to merge 2 commits into
juejin-cn:mainfrom
yudaxia1:feat/cli/dsh-followup
Open

feat(core): improve DeepSeek Harness usage collection#42
yudaxia1 wants to merge 2 commits into
juejin-cn:mainfrom
yudaxia1:feat/cli/dsh-followup

Conversation

@yudaxia1

Copy link
Copy Markdown

🏷️ 变动类型

  • 🆕 新功能
  • 🐞 Bug 修复
  • 🔌 新增 / 修复数据源解析器(parser)
  • 💄 样式与交互改进
  • ⚡️ 性能优化
  • 🛠 重构
  • 🤖 TypeScript 类型改进
  • 📝 文档改进
  • 📦 构建 / 打包 / 依赖
  • ✅ 测试用例
  • ⏩ 工作流 / CI
  • 🔒 安全修复
  • ❓ 其他(请说明是关于什么的改动)

🖥️ 影响范围

  • Desktop
  • CLI
  • Web

Desktop 和 CLI 通过同一个 core parser 采集 DSH 用量;本次不涉及 Dashboard UI。

🔗 关联 Issue

基于 #39 继续完善,可作为 #39 的后续替代 PR(supersedes #39)。

本 PR 完整保留了 @cyhano#39 中的原始提交和贡献记录;新增改动单独放在后续 commit 中。

💡 改动说明

#39 已经完成 DeepSeek Harness(DSH)数据源的主体接入。本 PR 在此基础上补充实际 DSH 日志场景,并修复增量扫描时可能重复累计 token 的问题:

  • 同时支持压缩的 session.jsonl.zstd 和关闭压缩后的 session.jsonl
  • assistant message 未携带模型时,从 request/header.data.header.config.model 回退获取
  • cacheWriteTokens 计入 cache_creation_input_tokens 和总 token
  • session 文件变化后全量重扫时,根据每条消息的上次 totals 只统计新增差值,避免历史 token 重复累计
  • 每个 session 只读取、解压一次;文件损坏或当前 Node 运行时不支持 zstd 时安全跳过,不影响其他数据源
  • 增加普通 JSONL、模型回退、cache-write、文件追加去重和多帧 zstd 等回归测试

未改动面板 UI。

验证结果:

  • DSH 专项测试:7/7 通过
  • Core 全量测试:248/248 通过
  • pnpm build 通过
  • git diff --check 通过

📝 Changelog

版本类型 变更描述(面向用户)
@juejin-opensource/jusage(CLI) minor 新增 DeepSeek Harness(dsh)用量采集:读取 ~/.dsh/sessions/**/session.jsonl(.zstd),按消息增量去重统计 input/output/cache-read/cache-write token、模型与项目,支持多帧 zstd、明文日志与模型回退。
@juejin-opensource/jusage-core minor 新增 DeepSeek Harness(dsh)用量采集:读取 ~/.dsh/sessions/**/session.jsonl(.zstd),按消息增量去重统计 input/output/cache-read/cache-write token、模型与项目,支持多帧 zstd、明文日志与模型回退。
@juejin-opensource/jusage-desktop minor 新增 DeepSeek Harness(dsh)用量采集:读取 ~/.dsh/sessions/**/session.jsonl(.zstd),按消息增量去重统计 input/output/cache-read/cache-write token、模型与项目,支持多帧 zstd、明文日志与模型回退。

☑️ 自查清单

  • 分支命名符合 <type>/<end>/<short-desc>
  • 已在受影响的端本地自测通过
  • 本次不涉及面板 UI,已确认无需同步 Dashboard / Desktop renderer
  • 已包含 changeset
  • pnpm build 通过

cyhano and others added 2 commits August 31, 2026 18:34
读取 ~/.dsh/sessions/**/session.jsonl.zstd,把 dsh 的 token 用量计入面板与排行榜。

- 新增 parser:解析官方会话文件(zstd 压缩 JSONL),只采 assistant/message 的
  data.usage,按消息去重、支持增量重扫,避免重复计数
- 多帧 zstd:dsh 会话是流式追加写入的多帧文件,Node 内置解压只处理第一帧,
  这里按帧循环解压并拼接(靠 engine.bytesWritten 推进)
- 字段映射:inputTokens→input,outputTokens→output,cacheReadTokens→cached_input,
  model 取 message.source.model,项目取 session 首行 cwd
- 接入 sync 调度、source 探测、tool catalog、上传事件映射与前端 label/颜色/图标

Co-Authored-By: ZCode <noreply@z.ai>
@ATQQ ATQQ mentioned this pull request Sep 1, 2026
21 tasks
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.

2 participants