DSH(DeepSeek Harness)在運行過程中會產生大量的會話歷史文件。隨着使用時間增長,歸檔文件會積壓,部分會話可能出現狀態不一致或投影緩存損壞。dsh-session-steward 旨在解決這兩個問題:通過“養老院”功能管理會話歷史,通過“體檢”功能診斷會話健康狀態。
插件定位¶
drscrewdriver/dsh-session-steward 是一個 DSH Web 插件,用於會話歷史文件管理與健康檢查。它爲異常會話提供投影級的體檢與可逆修復能力。
核心功能¶
插件主要提供兩塊功能:
會話歷史文件(養老院)¶
瀏覽官方歸檔集合,提供兩個獨立操作:
1. 取消歸檔狀態:修改 global.archivedSessionIds 數組,將會話移回原工作區,可逆。
2. 清理歸檔文件:刪除磁盤實體文件,不可逆。清理必然連帶取消歸檔,否則會產生“側邊欄看不見、一取消歸檔就變成空會話”的殭屍 ID。
會話健康檢查(體檢)¶
提供“四門體檢 → 處方 → 出院”的流程。支持批量體檢 session-health-scan 和可逆處置 session-health-repair。
安裝與啓用¶
安裝命令如下:
dsh plugin --profile web add dsh-session-steward
安裝後必須重啓 DSH 進程(僅刷新頁面無效)。
路由與 API¶
插件註冊在 /session-steward/api 路徑下,方法名均爲 session-*。安裝後,側邊欄底部會新增「會話管家」入口。
| 方法 | 子域 | 作用 |
|---|---|---|
session-health-status |
health | 開關狀態與方法表 |
session-health-scan |
health | 批量體檢 |
session-health-session |
health | 單會話四門報告 |
session-health-repair |
health | 可逆處置 |
session-history-list |
history | 列出歸檔集合 |
session-history-prune |
history | 取消歸檔狀態 |
session-history-purge |
history | 清理歸檔文件 |
配置開關¶
插件提供兩個 feature gate:
| 開關 | 字段 | 默認值 | 關閉效果 |
|---|---|---|---|
| 會話歷史文件 | historyFiles |
true | 不註冊 session-history-* 方法,不渲染「養老院」頁籤 |
| 健康檢查 | healthCheck |
true | 不註冊 session-health-* 方法,不渲染「體檢」頁籤 |
四門體檢¶
| gate | 判據 | level |
|---|---|---|
log-integrity |
zstd 多幀掃描、provenance 展開、seq 連續性 | 有讀取問題 fail;僅撕裂尾幀 warn |
projection-cache |
~/.dsh/storages/session_projcache/sessions/<id>.json 的 minSeq 與日誌末 seq 的 lag + 未結算字段 |
滯後且未結算 fail;任一 warn |
lossless-json |
熱態 sessionProjections.checkpoint(session) 逐行判定無損 JSON |
命中 fail |
cold-read |
最後 turn/end 的原因、是否存在未收尾 open step |
open step fail;interrupted/無 turn/end warn |
注意事項¶
-
硬約束:
- 列表與寫入同源:列表與寫入操作均認存儲文件~/.dsh/storages/workspace.json。宿主內存裏的workspaceRegistry是啓動快照,改文件寫不到內存,必須重啓 DSH 使改動生效。
- 操作後重啓:任何歸檔或工作區改動,操作後必須立刻重啓 DSH,否則會話狀態會回滾。 -
格式契約:
- 本插件寫、搜索索引只讀。搜索/獨立索引屬於另一片dsh-search-index,本插件不提供搜索與索引功能。 -
禁止項:
- 禁止改寫會話日誌、改歷史數據、靜默丟棄字段。