前言¶
DSH 插件會向會話日誌寫入事件。已覈實資料中,dsh 0.1.0-rc.x 沒有第三方事件類型註冊機制;當外置插件寫入類似 message-edit/version 的事件後,服務重啓恢復該會話時可能拋出 SessionFormatUnsupportedError,導致會話日誌無法正常打開。
dsh-session-repair 針對這個問題提供一個工具:先掃描 zstd 會話日誌中的未知事件類型,再按受控規則補齊 ignorable 標記並重寫日誌。
這是什麼¶
dsh-session-repair 是一個 DeepSeek Harness 插件,用於修復因未知事件類型導致無法打開的會話日誌。
- GitHub 倉庫:
Equinox7379/dsh-session-repair - 許可證:MIT
package.json聲明版本:0.1.0- 適用問題:
dsh 0.1.0-rc.x缺少第三方事件類型註冊機制導致的SessionFormatUnsupportedError
它主要做兩件事:掃描日誌中未知事件類型;在確認後可修復非 live 會話日誌,併爲未知事件補齊 ignorable 標記。
核心功能¶
掃描未知事件¶
使用 session_repair 工具的 action=scan 只做報告,默認零改動。輸出字段包括 action、files、unknown、fixable 等。
示例輸出:
{ "action": "scan",
"files": [ { "file": "--E-surdet--/session-…/session.jsonl.zstd",
"unknown": { "message-edit/version": { "count": 1, "ignorable": 0 } }, "fixable": true } ] }
修復會話日誌¶
action=repair:修復全部非 live 會話。action=repair_id:修復指定會話,並支持sessionId參數。
可靠性約束¶
- 修復前強制備份爲
.before-ignorable。 - 已標記事件不重複處理。
- 保持幀格式合規:首幀恰爲
header一行,之後每行一幀,壓縮帶校驗和。 - 解壓失敗或首行非法時中止該文件並報告,不強行寫回。
運行時邊界¶
- 零運行時依賴。
- 無自定義會話事件。
- 無 HTTP 路由。
package.json聲明dsh.bundle.patch爲./cordis.patch.yml。
安裝與啓用¶
安裝命令使用本地路徑形式。將 /path/to/dsh-session-repair 替換爲插件目錄:
dsh plugin --profile web add link:/path/to/dsh-session-repair
安裝完成後需要重啓 dsh web,使插件配置生效。
典型用法¶
工具名:session_repair
參數:
actionsessionId
常用動作:
- 只檢查不修改:
action=scan - 修復全部非 live 會話:
action=repair - 修復指定會話:
action=repair_id,並傳入sessionId
scan 輸出示例:
{ "action": "scan",
"files": [ { "file": "--E-surdet--/session-…/session.jsonl.zstd",
"unknown": { "message-edit/version": { "count": 1, "ignorable": 0 } }, "fixable": true } ] }
適用場景與注意¶
適合在以下情況使用:
- 會話日誌中存在第三方寫入的未知事件類型。
- 在
dsh 0.1.0-rc.x中恢復會話時遇到SessionFormatUnsupportedError。 - 希望先只讀檢查,再決定是否重寫日誌。
使用前注意:
- 插件會在當前
dsh進程權限下運行,並操作會話日誌文件;安裝前應檢查源碼、./cordis.patch.yml與 MIT 許可證。 repair會重寫會話日誌,但會先創建.before-ignorable備份。repair只處理非 live 會話文件;指定會話使用repair_id與sessionId。- 解壓失敗或首行非法時,該文件會中止並報告,不會強行寫回。
結尾¶
dsh-session-repair 的價值在於把“未知事件導致會話日誌打不開”的問題拆成兩步:先 scan 報告,再按 ignorable 標記受控修復。
當前可覈實信息爲 MIT 許可證、package.json 版本 0.1.0,倉庫地址爲:
https://github.com/Equinox7379/dsh-session-repair
本文提供的資料未確認目錄頁 URL;如需目錄頁入口,請以可覈實的 DSH 社區目錄爲準。