前言¶
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