3 Commits
Author SHA1 Message Date
jiangchen 891edaafe7 fix(bridge): 不再抢写 snapshot.json(会把别的会话串进浮窗);镜像缓存深度 40→80
实测串台:插件 tick 一停顿,桥就把另一个会话的 40 行写进 snapshot.json,浮窗显示成别人的对话。
现在桥只写 snapshot-bridge.json,浮窗按 sessionId 匹配后才用它补缺字段,永远不会串会话。
镜像缓存每会话保留 80 行(原来 40),仍然每 3 秒落盘一次。
2026-09-27 18:35:21 +08:00
jiangchen 3205aaea76 feat: 缓存命中率有来源了(assistant/chunk 的 usage 事件)+ DSH 启动自动拉起浮窗
挖到真源:事件流里 assistant/chunk 带 chunk.type='usage'
  {inputTokens,outputTokens,cacheReadTokens,reasoningTokens}
从此算出真实指标(不再依赖 tokenMeter 的估算):
  缓存命中率 = cacheRead/(input+cacheRead)     实测 0.9976(与 App 状态栏 99% 一致)
  总量       = output + input + cacheRead      实测 88.99M
  tok/s      = outputTokens/该步耗时            实测 37.3
  上下文占用 = 最后一步的 input+cacheRead / 窗口(不是历史累加)  实测 56.3%
插件与镜像桥两侧都接上了;镜像桥改为跟随插件认定的当前会话。

另:autoOpen(默认开)——DSH 启动后 1.5s 若浮窗没在跑就自动拉起(用户选定)。
2026-09-27 17:29:51 +08:00
jiangchen 6ee713b145 feat: 独立镜像桥(免 DSH 重启出镜像/指标)+ 去掉 IP 显示 + 上下文占比兜底
- tools/mirror-bridge.mjs:直接读 %DSH_HOME%/sessions/**/session.jsonl.zstd(多帧 zstd 按魔数切帧解)
  与 storages/session_projcache.json,算出 消息行/轮/步/tok·s⁻¹/token/上下文占比 并写
  snapshot-bridge.json(插件缺字段时由浮窗补齐);插件在写 snapshot.json 时它不抢
- 浮窗标题栏不再显示 endpoint IP,只在未连接时显示状态词;数据来自桥时指标带 ≈
- host: contextUsed 兜底按 1M 上下文算(真机 sessionProjection=n,拿不到上下文窗口)
- 实测:snapshot -> page rows=40 turns=1 steps=67 tok=214639;outbox watch 切会话生效
2026-09-27 17:20:14 +08:00