Skip to content

Releases

v0.2.0 — 模型聚合:累计用量与峰值速度

Choose a tag to compare

@chy007-fun chy007-fun released this 17 Sep 14:08

v0.2.0 — 模型聚合:累计用量与峰值速度

English: adds per-model cumulative output tokens and historical peak tok/s to the HUD; both are host-side in-memory only and reset on restart by design.

新功能

悬浮窗底部新增模型聚合区(最多 3 行):

模型用量(重启清零)
deepseek-v4-pro  ↑12.3K  ⚡58.2
glm-5.3          ↑4.5K   ⚡31.0
  • ↑:该模型自 host 启动以来的累计输出 token 数
  • ⚡:该模型在滚动窗口 tps 上的历史峰值(5 秒均值口径)

两列数据均为 host 纯内存,重启自动归零——正好对应你“看模型是不是稳定出字”的需求:如果 ↑ 缓慢爬坡 ⚡ 长期低于预期,说明模型速度本来就不高;如果 ⚡ 突然跳水再恢复,大概率就是重试了一次。

实现细节

Host

  • 新增 models Map,键为 model name,值为 { provider, outputTokens, peakTps }。
  • addTokens() 在流式估算时按 session.model 即时归集;模型未知名时暂存 untaggedTokens,在 assistant/message(或更早的 request/header)提供模型名后一次性回填。
  • snapshot() 每次计算各会话当前 tps,高于该模型 peak 则更新;驱逐空闲会话前回填 untagged。
  • 响应新增 models: [...] 字段(top 8,按 outputTokens 降序)。
  • request/header 事件处理:config.model 存在时提前锁定模型名,缩小首轮流式期间的 untagged 窗口。

Client

  • 渲染 stats.models:最多 3 行,每行 模型名 ↑累计 ⚡峰值,模型名过长自动 ellipsis。
  • 新增 CSS:.th-models(顶部分隔线)、.th-mrow、.th-mtok、.th-mtps。
  • i18n:中文 模型用量(重启清零) / 英文 Model usage (resets on restart)。

测试

  • Host test(A/B/C/D 四通道):
    • A 旧宿主 chunk 通道 → glm-5.3 outputTokens=300 ✅
    • B 帧通道 + request/header 提前锁定 → deepseek-v4-pro outputTokens=160 peakTps>0 ✅
    • C 防双计护栏 ✅
    • D 无 request/header 的 untagged 回填 → mimo-v2.5-pro outputTokens=90 ✅
    • 聚合表排序(300 > 160 > 90)✅
  • Client smoke:
    • ↑ ⚡ 图标、th-models 类名、第二模型行存在 ✅
    • 其余既有场景全绿 ✅

升级

dsh plugin --profile web add dsh-token-hud   # 已装用户重跑即升级

重启 dsh web 生效。

v0.1.1 — 修复 0.1.5-rc.2+ 宿主上实时速度恒为 0

Choose a tag to compare

@chy007-fun chy007-fun released this 17 Sep 11:07

v0.1.1 — 修复 0.1.5-rc.2+ 宿主上实时速度恒为 0

English: fixes live tok/s stuck at 0 on DSH hosts >= 0.1.5-rc.2 (session format v2). The plugin now consumes the new agent/assistant-stream frame channel, keeps the assistant/chunk fallback for older hosts, and guards against double counting.

问题现象

宿主从 0.1.2-rc.x 升级到 0.1.5-rc.2(会话日志 format v2)后:

  • 悬浮窗实时 tok/s 恒为 0
  • 累计 token 仍缓慢增长(来自 assistant/message 的事后 usage 校正)

根因

v2 把流式输出拆成了两条通道:

0.1.2-rc.x 0.1.5-rc.2+(format v2)
实时逐 delta session/event 的 assistant/chunk 独立 agent/assistant-stream 帧通道(每 chunk 广播,含子代理)
落账 逐 chunk 进 session log 尝试结束才落一个完整 assistant/attempt

0.1.0 只监听 session 事件 → 在新宿主上收不到任何实时 delta。

修复

  • 新增 agent/assistant-stream 帧监听(与官方 dsh-api-session-controller 相同的订阅方式,{ global: true }),逐 chunk 估算进滚动窗口
  • 保留 assistant/chunk 回退通道,0.1.2-rc.x 老宿主照常工作
  • 双通道互斥护栏:见过帧后自动忽略旧通道的 chunk,杜绝双计数
  • attempt start 帧重置估算基线(同 turn/step 的重试视为全新尝试)

兼容性

  • 0.1.5-rc.2+ / format v2 ✅(帧通道)
  • 0.1.2-rc.x ✅(回退通道)
  • 配置项、API 路径、悬浮窗 UI 无任何变化,直接换包即可

测试

test.mjs 新增三通道覆盖(旧通道 / 帧通道 / 防双计护栏),全绿;客户端 jsdom 冒烟测试无回归。

升级

dsh plugin --profile web add dsh-token-hud

重启 dsh web 生效;npm 源同步后即为 0.1.1(latest)。

v0.1.0 — 首发

v0.1.0 — 首发 Pre-release
Pre-release

Choose a tag to compare

@chy007-fun chy007-fun released this 06 Sep 20:06

v0.1.0 — 首发

DSH Web 全局实时 Token HUD 的第一个公开发布。

  • 可拖拽、可折叠悬浮窗(shell.overlay),显示整个 DSH 所有会话的实时输出速度(tok/s)、累计输出与运行状态
  • 逐 delta 字符估算(中文 ≈ 1 tok/字,英文 ≈ 4 字符/tok),provider 上报 usage 后自动校正为精确值
  • 状态点:🟢 出字中(脉动)· 🟡 等模型 · 🟠 重试等待 · 🔵 工具调用 · ⚪ 空闲
  • host 纯内存、只读 API /token-hud/v1/stats:零持久化、不写会话日志、对模型零影响
  • 含 host 逻辑测试(估算/校正/状态机/HTTP)与客户端 jsdom 冒烟测试(渲染/折叠/持久化/离线降级)

安装

dsh plugin --profile web add dsh-token-hud