在 DeepSeek Harness(DSH)中,歸檔會話通常僅將其從視圖列表中隱藏,但底層的會話日誌文件(.jsonl.zstd)和記賬數據保持不變,導致磁盤佔用持續增長。dsh-archive-manager 插件在設置頁面添加了專門的標籤頁,用於列出所有已歸檔會話並提供真正的刪除能力,解決磁盤空間佔用問題。
核心功能¶
設置頁面集成¶
插件在設置頁面添加了一個歸檔管理標籤頁,與“通用”、“模型”等設置項並列。這個標籤頁允許用戶直接在瀏覽器端查看和管理已歸檔的數據,無需進入文件系統。
會話列表與刪除¶
列表中顯示已歸檔會話的標題、創建時間以及日誌文件是否存在於磁盤。每行提供刪除按鈕,點擊後彈出確認對話框,確認後移除會話目錄、工作區會計記錄和投影緩存。
安全與兼容性¶
- 嚴格驗證:僅接受同源請求,對會話 ID 進行嚴格格式驗證,防止路徑遍歷攻擊。
- 環境兼容:解決了不同 PowerShell 版本下的 UTF-8 BOM 問題,確保文件讀寫一致。
- 持久化優先:刪除操作會持久化更新
workspace.json,確保文件系統與內存狀態一致。
安裝與啓用¶
1. 安裝插件包¶
使用 npm 安裝插件包:
npm install dsh-archive-manager-plus
2. 配置依賴¶
在 <profile>/package.json 的 dependencies 字段中添加依賴項:
{
"dependencies": {
"dsh-archive-manager-plus": "^0.1.0"
}
}
3. 註冊捆綁¶
在 dsh.profile.bundles 數組中追加插件名稱:
{
"dsh.profile.bundles": [
"dsh-archive-manager-plus"
]
}
安裝完成後運行 npm install,確認包已進入配置目錄,然後重啓 DSH 並刷新頁面。
使用步驟¶
-
歸檔會話
在側邊欄會話菜單中,點擊任意會話行的⋯菜單,選擇“歸檔會話”。建議先歸檔 1-2 個會話以進行測試。 -
打開管理頁面
點擊頁面右上角的設置圖標(齒輪),進入“設置”頁面,點擊“歸檔管理”標籤頁。 -
執行刪除
在列表中找到已歸檔的會話,點擊“刪除”按鈕。在確認對話框中點擊確認。會話行將從列表中消失,對應的磁盤日誌文件和緩存也會被清除。
注意事項¶
- 操作範圍:插件僅提供刪除已歸檔會話的功能,無法刪除當前正在運行的會話。
- 歷史保留:刪除會話僅清理會話日誌和記賬,支出歷史記錄(
cost-meter/ledger.json)會被保留。 - 狀態殘留:刪除後,內存中的狀態可能短暫殘留,直到下一次連接或刷新頁面。
- 技術實現:瀏覽器端爲手寫 CommonJS 打包,主機端爲純 ESM 模塊。
- 安全限制:插件的主機端僅接受同源請求,確保請求來源合法。
總結¶
該插件填補了 DSH 官方歸檔功能僅隱藏不刪除的空白,提供了在設置頁面直接清理磁盤佔用會話的能力。通過嚴格的驗證機制和持久化更新邏輯,保證了在清理文件的同時維持系統狀態的完整性。