前言¶
DeepSeek Harness (DSH) 的核心設計理念是“一切皆插件”。在默認行爲中,DSH 客戶端僅提供“歸檔”功能。歸檔會將會話從主視圖隱藏,但不會從磁盤上刪除日誌文件(如 session.vN.jsonl.zstd)或投影緩存。官方也明確在 dsh-client-ui-workspace 中標註了“無會話刪除”的限制。
dsh-session-purge 插件填補了這一空白。它允許用戶徹底刪除會話數據,釋放磁盤空間,並清理持久化狀態。
核心功能¶
該插件提供兩條刪除路徑,覆蓋單條與批量場景:
- 徹底刪除單條會話:每條會話行右側的「…」菜單中提供入口。無論會話是否歸檔,該選項均可見。
- 一鍵刪除全部已歸檔:在側邊欄頂部菜單將篩選切換爲「僅顯示已歸檔」後,底部操作區會出現批量按鈕。此設計確保刪除範圍與當前視圖一致,不會誤刪未歸檔會話。
刪除操作會依次執行以下步驟,確保狀態一致性:
1. 工作區記賬:從所屬 Workspace 的 sessionIds 中移除會話 ID。
2. 歸檔標記:從全局歸檔集合 archivedSessionIds 中移除。
3. 磁盤日誌:刪除會話日誌目錄及對應的 session.vN.jsonl.zstd 文件。
4. 投影緩存:刪除 session_projcache 中的緩存文件,並清理其他持久化狀態。
安裝¶
使用官方命令安裝:
dsh plugin --profile desktop add @lxchapu/dsh-session-purge
安裝後需重啓應用以使改動生效。
典型用法¶
- 單條刪除:在會話列表中找到目標會話,點擊右側的「…」,選擇「徹底刪除」。系統會彈出二次確認,提示將從磁盤永久刪除且不可撤銷。
- 批量刪除:點擊側邊欄頂部的篩選按鈕,選擇「僅顯示已歸檔」。此時列表底部會出現批量操作按鈕,點擊後可刪除當前列表中的所有會話。
注意事項¶
- 運行中的會話會被拒絕:若會話狀態爲
running(包括等待審批、工具阻塞等),刪除請求會被拒絕,系統會提示先結束當前輪次再刪除。 - 操作不可逆:刪除後無回收站機制,磁盤日誌與緩存將被物理移除。
- 依賴項:插件依賴
dsh.client.inject,確保宿主注入了必要的會話與工作區控制器接口。 - 版本更新:版本 0.1.2 修復了單條會話無法刪除的問題,建議使用最新版本。
總結¶
dsh-session-purge 是解決 DSH 會話數據堆積的有效工具。它在不改變 DSH 官方架構的前提下,提供了安全的會話清理能力。