DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

Neverwocao /

Neverwocao/dsh-session-timing

Verified

Session and turn wall-clock timing for the DeepSeek Harness Web UI: per-session total, per-turn duration, and period aggregates.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@e4f097ac

会话耗时 · dsh-session-timing

给 DeepSeek Harness Web UI 用的会话耗时插件:看每个会话用了多久、每一轮用了多久,并按时间段汇总。

想看什么 在哪里看
每个会话的总耗时 打开会话时标题栏右侧的 ⏱ 累计 12m 10s 胶囊;以及「会话耗时」面板里每个会话一行
每一轮的耗时 Chat 中每一轮结束后、操作行上方:本轮 2 · 3m · 08:52:30 → 08:55:30
一段时间内的总耗时 侧边栏「会话耗时」面板:今天 / 近 7 天 / 近 30 天 / 全部

数据全部来自会话日志(turn/start、turn/end 两种事件),所以翻页、压缩上下文、重启 Harness 都不会让数字变化。

安装

要求:

  • Node.js ≥ 20
  • pnpm 在 DSH 进程的 PATH 上(DSH 用它安装插件)
  • 带 dsh plugin 命令的 DSH

一行安装(把 web 换成你的 profile 名,桌面版通常是 desktop):

dsh plugin --profile web add github:Neverwocao/dsh-session-timing#v1.0.0

装完重启 dsh web(插件行、客户端 bundle 都是启动时扫描的),再打开「插件」面板确认 会话耗时 已启用。

也可以用发布包或本地目录:

# 从 tag 的 tar 包安装
dsh plugin --profile web add https://github.com/Neverwocao/dsh-session-timing/archive/refs/tags/v1.0.0.tar.gz

# 本地开发:直接链接一份 checkout
dsh plugin --profile web add link:/绝对路径/dsh-session-timing

卸载:dsh plugin --profile web remove dsh-session-timing。

它是怎么做的

一个 Host 投影单元 + 一个 Client 半,都是公开接缝:

  • Host(index.js)注册 sessionTiming 会话投影单元,只折叠 turn/start 和 turn/end。其余事件原样返回同一个 state 引用,因此对热路径零成本;值可以随投影缓存持久化,冷读也能从日志重算。
  • Client(client.js)挂在四个位置:会话标题栏、每轮的操作行前、侧边栏面板图标、主面板页面。当前会话通过 Session 绑定的投影读面订阅,不轮询;整个语料通过 ctx.remote.session.list 的投影值取,只有缺值或过期的行才逐条精确重算。

口径

名称 含义
轮次耗时 turn/end 时间减 turn/start 时间,包含工具执行与等待
会话总耗时(活跃时长) 所有已结束轮次之和
时间跨度 第一轮开始到最后轮结束;会话中间闲置时它大于活跃时长
时间段总耗时 所选时间段内各会话活跃时长之和
  • 会话按最后活动日归档,所以「今天」指的是今天有过活动的会话。
  • 正在进行的轮次不计入总量,只在标题栏胶囊里实时累加显示。
  • 某一轮没有落 turn/end(崩溃、强杀)时,用下一轮的 turn/start 作为它的结束时间,历史保持单调。

开发

仓库没有依赖,测试只跑纯函数:

node --test      # 或 npm test:9 个折叠/校验用例
npm run check    # node --check 两个入口文件

目录:

index.js               Host 插件:sessionTiming 投影单元(纯折叠)
client.js              Client 插件:4 个挂载点 + 面板页面
cordis.patch.yml       bundle patch:插入一条 Host 行
package.json           dsh.bundle / dsh.client / 兼容版本范围
locale/{zh,en}.json    插件管理器中显示的名称与描述
icon.svg               插件图标(自绘秒表)
test/                  投影单元测试

改了 Client 代码后:本仓库是 link: 安装时,重启 dsh web 或刷新页面即可加载新 bundle。

兼容性

  • 在 DSH 0.2.1-rc.5 上验证;engines.dsh 限定 <0.3.0-0。
  • 依赖的公开接缝:sessionProjections(投影注册与读面)、slots(四个挂载点)、ctx.remote.session(会话列表与投影读取)。

已知限制

  • 只折叠轮次边界,不细分每一步(step)的耗时;模型时间与工具时间请用 DSH 自带的 sessionStats 统计条。
  • 面板单次最多读取 120 个会话,超出会在页面底部提示。
  • 面板不做自动刷新:切时间段或点「刷新」才会重算。

许可证

MIT © 2026 wzp168

—/ 5

No ratings yet

Verified DSH bundle

Commit e4f097ac7f4a

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout