前言¶
DSH 在智能體開發過程中會產生大量會話數據。當會話目錄被移動到其他盤符,或者原位置僅保留 junction/符號鏈接引用時,常規清理往往無法定位真實文件。dsh-session-delete 插件通過注入側欄與工作區菜單項,提供了一套受控的刪除流程,確保數據被徹底清除。
插件簡介¶
該插件由 Baboo-ming 維護,採用 MIT 許可證。它解決了 DSH 會話數據殘留的問題,支持側欄單條刪除與工作區批量刪除,並提供七階段流水線保證清理的完整性。
核心功能¶
插件提供兩種刪除模式,底層共用一套七階段流水線:
-
側欄會話刪除
- 在側欄會話行的菜單中注入紅色“刪除會話”危險項。
- 點擊後彈出二次確認模態框,展示會話 cwd、佔用大小、歸檔狀態及運行狀態。
- 確認後執行流水線,完成後刷新側欄列表。
-
工作區批量刪除
- 在工作區行的菜單中提供“刪除所有會話”選項。
- 支持批量預覽、後臺任務執行與進度/失敗明細查看。
- 單個會話失敗不影響批次其他會話的刪除,任務完成後彙總結果。
技術實現¶
插件包含以下關鍵能力:
* 七階段流水線:依次執行校驗、運行保護、工作區掛賬移除、歸檔集合清理、磁盤日誌刪除、內存摘除、廣播事件。任一階段失敗僅告警並降級繼續,不會中斷整體流程。
* 穿透刪除:支持穿透 junction 和符號鏈接定位真實文件。
* 內存摘除:通過 sessions.flush 和 detachEntered 釋放 JSONL writer 和內存引用。
* 徹底清理:永久刪除,無法撤銷。
安裝¶
安裝前需要退出 DSH 桌面端,否則 CLI 寫入 profile 時會阻止服務啓動。
dsh plugin --profile desktop add github:Baboo-ming/dsh-session-delete#v0.2.2
若需升級,需切換到新的 tag 並重跑上述命令。
使用方法¶
- 刪除單個會話:在 DSH 側欄的會話行點擊
...菜單,選擇紅色高亮的“刪除會話”。 - 刪除工作區所有會話:在工作區行點擊
...菜單,選擇“刪除所有會話”。
注意事項¶
- 永久性:刪除操作是永久性的,無法撤銷,請謹慎使用。
- 權限限制:部分 junction/符號鏈接用例需要 Windows 符號鏈接權限,在受限沙箱環境中可能會失敗。
- 時序影響:在內存摘除後,如果重掃投影緩存,可能會導致磁盤日誌被重新寫入。
結語¶
該插件爲 DSH 提供了標準化的會話清理方案,適用於需要徹底清理工作區或管理大量會話的場景。更多細節可參考官方文檔。