前言¶
DeepSeek Harness (DSH) 在長期使用後,側邊欄通常會堆積大量歸檔會話或無日誌記錄的空白會話。這些會話在界面中不可見,但會佔用存儲空間並污染 sessionIds 集合。dsh-session-vault 是一個設置插件,用於列出並刪除側邊欄隱藏的歸檔或空白會話,以及無法讀取日誌的會話。
插件介紹¶
該插件由 nateyu 維護,是一個 DeepSeek Harness 客戶端插件。它的核心作用是提供一個設置頁面,讓用戶能夠清理那些被產品界面隱藏、無法正常交互或日誌損壞的會話。
核心功能¶
- 列出並刪除隱藏會話:插件會列出側邊欄隱藏的歸檔會話、無日誌記錄的空白會話,以及無法讀取日誌的“Unreadable”會話。
- 會話過濾與分頁:列表支持按類型和日期過濾,並支持分頁瀏覽。
- 排除 Subagent:插件自動排除 Subagent 類型的會話,避免誤刪。
- 多語言導航:設置頁面的導航標籤會自動跟隨產品語言,中文環境下顯示“歸檔”,英文環境下顯示“Archive”。
- RPC 刪除機制:刪除操作通過 Connection RPC 進行,確保了操作的底層權限控制。
- 批量限制:單次
vault.delete調用最多接受 200 個會話 ID。
安裝與啓用¶
使用官方插件目錄安裝:
dsh plugin --profile web add dsh-session-vault
安裝完成後,重啓 dsh web,在設置頁面中即可找到該插件入口。
使用流程¶
- 切換會話:當前正在查看的會話無法刪除,必須先切換到其他會話。
- 運行狀態限制:標記爲
running的會話會被拒絕刪除。 - 確認與撤銷:刪除操作需要用戶確認,且確認後無法撤銷。
實現細節與限制¶
- 後端要求:需要使用 JSONL 持久化後端(
dsh web默認配置)。刪除操作會拒絕任何無法通過locate()返回會話目錄的後端(例如 SQLite)。 - 文件清理:刪除操作會清除任何活動的 agent 或 session,防止下次刷新時系統重寫文件。
- 數據移除:插件會從工作區
sessionIds和全局archivedSessionIds集合中移除 ID。 - 歸賬本處理:由於上游沒有發佈對應的 API 來從歸檔賬本中移除 ID,插件直接寫入
WorkspaceRegistry狀態。該寫入操作不運行在註冊表的內部操作隊列上,若發生併發衝突會報錯,而非靜默覆蓋。 - 單次上限:一次請求最多處理 200 個 ID,超過此數量需分批操作。
結語¶
dsh-session-vault 提供了 DeepSeek Harness 實例中清理不可見會話的能力,適合需要維護大量歷史會話或遇到會話索引混亂的開發者使用。