前言¶
在 DeepSeek Harness (DSH) 桌面版中,會話列表會隨着使用逐漸膨脹。手動刪除會話時,宿主留下的工作區記賬、置頂標記、投影緩存行(含備份文件)往往無法同步清理,導致側欄或歸檔列表中出現“髒數據”。dsh-session-cleaner 專注於解決這一問題,它將側欄的“刪除”操作升級爲“移入回收站”,支持搜索、恢復與徹底刪除,確保刪除過程可控、可逆。
功能概覽¶
該插件由 jackxiao17 維護,目前開源,採用 MIT 許可證。它安裝在 DSH 桌面版客戶端,不改變宿主核心邏輯,僅通過插件接口介入會話生命週期管理。
核心能力集中在以下幾個方面:
1. 回收站機制:刪除會話時,文件被整體 rename 到回收站目錄(同盤瞬時操作,不復制),保留了 30 天的回滾窗口。
2. 痕跡清理:刪除時同步摘掉工作區記賬槽位、置頂與歸檔標記,清掉投影緩存行(含宿主留下的 .bak 備份文件)。
3. 子會話處理:對於帶有子代理的會話,插件會整棵樹一起處理,確保父子關係在刪除/恢復流程中不斷裂。
4. 徹底刪除:在回收站中點擊徹底刪除,會額外清理綁定該會話的定時任務與空掉的工程目錄。
5. 查看與搜索:回收站面板支持按標題/正文搜索、工作區篩選、按時間/大小/輪次排序;點擊會話可查看完整的對話記錄(Markdown 渲染,超長回覆中間省略)。
安裝與啓用¶
安裝過程需要修改 DSH 的桌面版配置目錄。請確保當前 DSH 版本爲 0.2.1-rc.2(其他版本可能存在兼容性問題)。
- 將插件文件夾(
dsh-session-cleaner)拷貝到%DSH_HOME%\profiles\desktop\local\dsh-session-cleaner。 - 編輯
%DSH_HOME%\profiles\desktop\package.json:- 在
dependencies中添加:"dsh-session-cleaner": "file:./local/dsh-session-cleaner" - 在
dsh.profile.bundles數組中添加:"dsh-session-cleaner"
- 在
- 在該目錄運行 DSH 自帶的 pnpm 安裝命令:
node "%DSH_HOME%\dsh-runtimes\dsh-primary-runtime\dependencies\pnpm\bin\pnpm.cjs" install -C %DSH_HOME%\profiles\desktop
- 重啓 DSH。在側欄會話列表的
···菜單中,會出現紅色的刪除選項;側欄底部會出現會話回收站入口。
使用方法¶
操作流程分爲“刪除”與“回收站管理”兩部分。
刪除會話¶
在側欄點擊會話的 ··· 菜單,選擇 刪除:
* 會話被直接移入回收站,頂部提示“✓ 會話已刪除至回收站”。
* 對話中正在進行的回答會被結束(取消當前輪 + 拆掉 agent),然後再移入回收站。
* 如果該會話有子會話,子會話也會一併搬入回收站。
回收站管理¶
點擊側欄底部的 會話回收站 按鈕:
* 搜索與篩選:支持標題實時過濾,勾選“搜正文”可搜索提問與回覆內容。支持按工作區篩選、按刪除時間/標題/大小/輪次排序。
* 恢復:勾選會話後點擊恢復,目錄搬回原位、記賬掛回原工作區並回到原來的槽位、投影緩存行原樣還原。如果刪除前是歸檔狀態,恢復後會回到歸檔列表。
* 徹底刪除:勾選會話後點擊徹底刪除,會清掉綁定該會話的定時任務與空掉的工程目錄。
* 查看日誌:點擊會話可查看逐輪對話記錄。
注意事項¶
- 宿主契約依賴:插件依賴 DSH v4 會話日誌格式、zstd 幀佈局、v7
session_projcache存儲域、workspaceRegistry/schedule/storageDomain/webServer服務以及前端 slot 與__ModuleLoader__。這些契約已與 0.2.1-rc.2 源碼逐一覈對。 - 兼容性承諾:向下兼容未逐一驗證,不做承諾。在舊版本上,功能可能會弱化(例如槽位無法還原導致恢復到頂部),但不會導致數據損壞或錯誤刪除。
- 版本限制:0.1.x 未驗證,不建議直接使用。大版本升級後插件可能失靈(表現爲菜單項消失),但不會傷及會話數據。
- 保留期與清理:回收站默認保留 30 天,啓動時清一次,之後每 6 小時清一次。定時任務在會話進回收站期間不會被清掉(宿主不支持原樣重建任務)。
- 數據一致性:恢復不保證與刪除前逐字節相同的地方;同 id 有兩份日誌目錄時會拒絕操作;插件具備崩潰安全機制(快照先寫、文件後搬)。
總結¶
dsh-session-cleaner 提供了可控的會話生命週期管理。對於需要頻繁清理會話、維護整潔側欄或需要徹底清理宿主痕跡的開發者,這是一個實用的工具。插件源碼與文檔可參考:GitHub。