前言¶
DSH 的插件生态把会话管理、侧边栏工具和 CLI 工具都当作可扩展部分。对使用 DeepSeek Harness 的人来说,有两类具体问题:一类是某些会话无法加载,常见原因包括 seq gap、torn zstd frames、lone surrogates;另一类是希望新会话能参考旧会话上下文,而不是重新从零开始。
dsh-session-surgeon 围绕这两件事提供能力:在 DSH 中复制会话 ID、inspect、dry-run repair,也提供 CLI 和 agent tools。下面按定位、功能、安装、用法和注意事项展开。
这是什么¶
dsh-session-surgeon 是 xiaoshenming 维护的 DSH 插件,许可证为 MIT。它的核心定位是:
Repair DeepSeek Harness sessions that refuse to load (seq gap, torn zstd frames, lone surrogates).
同时,它也提供“复制会话 ID”的路径,让用户在新会话中粘贴旧会话 ID,使新会话参考旧会话上下文。
已核实资料中给出的兼容信息如下:
Compatible with @deepseek-ai/dsh@0.1.0-rc.6
package.json 将 @deepseek-ai/dsh-tools 设为:
^0.1.0-rc.6
并且是 optional。
核心功能¶
- 在 DSH 会话
⋯菜单中提供: - 复制会话 ID
- inspect
-
dry-run repair
-
在侧边栏“会话医生 / Session surgeon”中提供:
- 浏览会话
- 复制 id
- dry-run repair
- apply repair
- compact preview
-
export JSONL
-
修复不可加载的 DSH 会话,涉及:
- seq gap
- torn zstd
- lone surrogates
-
缺失 message id
-
inspect会报告: - seq gap
- missing id
-
dangling tool/call
-
对 dangling
tool/call,inspect 只警告,不伪造tool/result。 -
CLI 提供:
scan
inspect
repair
compact
export
index
-
repair默认是 dry-run;使用--apply时先写.bak.<utc>。 -
安装后提供 agent tools:
session_scan
session_inspect
session_repair
其中 session_repair 的 apply 默认为 false。
export默认 redact secrets,可用--no-redact关闭。
安装与启用¶
安装命令如下:
dsh plugin --profile web add "github:xiaoshenming/dsh-session-surgeon#main"
安装后重启 dsh web。
重启后,可在 DSH 的会话菜单和侧边栏中看到该插件提供的入口。
典型用法¶
1. 复制会话 ID,让新会话参考旧上下文¶
先点击会话 ⋯ 菜单,选择“复制会话 ID”。
然后在新聊天中粘贴类似内容:
Continue from session session-1e66cda9-a046-4893-8f4b-b817080acbea.
如果当前 agent 有工具,也可以写:
session_inspect id=session-1e66cda9-a046-4893-8f4b-b817080acbea
这种方式适合让新会话引用旧会话上下文,而不是直接复制会话文件。
2. 用 CLI 扫描、检查和修复¶
先扫描:
npx --yes github:xiaoshenming/dsh-session-surgeon scan
再检查指定会话:
npx --yes github:xiaoshenming/dsh-session-surgeon inspect <session-id>
默认 repair 是 dry-run:
npx --yes github:xiaoshenming/dsh-session-surgeon repair <session-id>
确认需要写入时,再加 --apply:
npx --yes github:xiaoshenming/dsh-session-surgeon repair <session-id> --apply
--apply 会先写 .bak.<utc>。
3. 从本地 checkout 运行¶
如果你已经在本地 checkout 中,可以直接运行:
node bin/dsh-session-surgeon.mjs scan
适用场景与注意¶
适合以下使用者:
- 需要修复无法加载的 DSH 会话。
- 希望在新会话中引用旧会话 ID 和旧上下文。
- 需要在侧边栏中查看会话医生 / Session surgeon。
- 需要通过 CLI 做 scan、inspect、repair。
- 需要在带工具的 agent 中调用
session_scan、session_inspect、session_repair。
需要注意:
- 默认是 read-only;写路径需要
--apply,并先写.bak.<utc>。 - Windows 下
--apply对只读备份句柄的fsync作为 best-effort 处理。 - 不要把
@deepseek-ai/dsh-tools放入 dependencies。 export会 redactsk-*、PEM blocks、home paths,除非使用--no-redact。- 不要提交
~/.dsh/sessions原始文件,因为它们包含用户文本和 secrets。 - 该插件不是 marketplace、token heatmap、memory plugin、Codex task store。
- 插件会以当前
dsh进程权限运行;安装前应检查源码和 MIT 许可证。 - DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。
链接¶
GitHub:
https://github.com/xiaoshenming/dsh-session-surgeon
目录页:在 DSH 插件目录中检索:
dsh-session-surgeon