DeepSeek Harness (DSH) 的默認會話管理僅支持重命名、分叉和歸檔操作。歸檔操作僅是隱藏會話,數據仍然保存在磁盤上。長期使用會導致存儲空間膨脹。dsh-session-delete 插件在會話行菜單中增加了“刪除會話”選項,支持永久移除磁盤上的日誌文件,並內置了防止誤刪運行中會話的安全機制。
核心功能¶
該插件在 DSH 會話行上下文菜單中添加了“刪除會話”入口,與重命名、分叉和歸檔功能並列。
- 持久刪除:永久移除磁盤上的會話日誌目錄。
- 運行保護:禁止刪除運行中或當前打開的會話(前端禁用 + Host 側二次校驗)。
- 路徑安全:嚴格校驗目錄名必須等於會話 ID,防止路徑逃逸。
- 請求校驗:僅接受同源 POST 請求。
- 操作確認:刪除前需進行兩步確認。
- 自動歸檔:刪除後會話自動歸檔,側邊欄即時隱藏。
安裝與啓用¶
- 安裝插件:
dsh plugin --profile web add github:Yicijiuhaobala/dsh-session-delete
- 啓用插件:將
"dsh-session-delete"加入~/.dsh/profiles/web/package.json的dsh.profile.bundles數組,然後重啓dsh web。 - 本地開發:若進行本地開發,需將源碼
client/client.js和lib/index.js同步到~/.dsh/profiles/web/node_modules/dsh-session-delete/,或重新運行pnpm install以觸發熱更新。
典型用法¶
- 標準操作:鼠標懸停在任意會話行上,點擊右下角的
⋯(三個點),選擇“刪除會話”。 - 刪除歸檔會話:若需刪除已歸檔的會話,可從
~/.dsh/storages/workspace.的archivedSessionIds中移除該 ID,或直接刪除目錄~/.dsh/sessions/<workspace-dir>/<session-id>/。
技術說明¶
由於 DSH 中的共享 UI 原語被 Object.freeze 凍結,組件級補丁會靜默失敗,該插件採用 DOM 級注入的方式實現。插件遵循 MIT 許可證。