前言¶
DSH 的會話管理有個容易被忽略的點:內置的「刪除」並不是刪文件。刪掉工作區後,會話只是從分組裏摘出來、掉進「未分組」;會話本身則根本沒有刪除入口,因爲核心設計裏會話只能歸檔。等到磁盤上積累了大量日誌目錄,常規操作清不掉,就需要一個能真正落盤的刪除手段。
下面介紹的 dsh-purge 就是補這個缺口的插件,屬於客戶端分類,由 GitHub 用戶 Manbaout-08 維護(npm 包作者署名爲 CTTWang)。它把會話與工作區的刪除做成真實磁盤刪除,同時提供會話菜單入口和斜槓命令。
這是什麼¶
一句話定位:dsh-purge 爲 DeepSeek Harness(DSH)提供會話和工作區的永久刪除能力,刪除的是磁盤上的實際文件,而不是取消註冊。
它解決的核心問題有兩點:
- 會話沒有刪除入口,只能歸檔,日誌目錄一直留在磁盤上。
- 工作區刪除只取消註冊,會留下「未分組」殘渣,磁盤文件仍在。
dsh-purge 同時覆蓋 web 與 desktop 兩個 profile,當前最新版本爲 1.0.1,許可證爲 MIT。
核心功能¶
入口位置¶
在會話行的「⋯」菜單裏,插件項排在「複製 Session ID」下面,並帶分隔線。這裏要說明:DSH 側欄只暴露會話級的 slot,工作區行的「⋯」菜單無法擴展,所以「刪工作區」的入口也掛在會話菜單裏。菜單行爲如下:
| 菜單項 | 行爲 |
|---|---|
| 徹底刪除會話 | 刪除該會話的磁盤日誌目錄 + 從工作區摘除 + 歸檔隱藏 |
| 徹底刪除所在工作區 | 刪除該工作區名下所有會話的日誌目錄 + 通過 Registry 刪除工作區註冊,側欄即時消失 |
斜槓命令¶
除了菜單,插件提供四條命令,適合腳本化或鍵盤操作:
/purge session <sessionId> 刪單個會話
/purge workspace <workspaceId> 刪工作區及其全部會話
/purge workspace-of <sessionId> 刪該會話所屬的工作區
/purge here 刪當前會話
刪除行爲¶
- 工作區:走宿主內存裏的
WorkspaceRegistry.delete(),內存與workspace.json一起更新,不需要刷新頁面,也不會留下「未分組」殘渣。 - 會話:核心沒有刪除會話的 API,sessions 服務的內存目錄無法移除。實際做法是「刪日誌文件 → detach → archive」:文件真的沒了,行從主視圖消失,只在「已歸檔會話」裏可能殘留一個打不開的幽靈條目,重啓 DSH 後徹底消失。
- 邊界:插件只動會話日誌與註冊記錄,工作區對應的磁盤目錄(即你的工程文件)永遠不碰。
刪除是不可逆的¶
刪除不可撤銷,沒有回收站。執行前請看清命令作用的對象,尤其 /purge workspace 會連帶刪掉該工作區下全部會話日誌。
安裝與啓用¶
安裝¶
官方安裝命令如下:
npm i @manbaout-08/dsh-purge
兼容範圍與運行要求寫在 package.json 裏:
DSH >=0.2.0-rc.2 <0.3.0
profile web / desktop
node >=20.18
啓用與禁用¶
插件通過一個 patch 註冊,cordis.patch.yml 裏有對應的 enabled: true 開關。禁用時三選一:
- 在
cordis.patch.yml裏把enabled: true改成false; - 在插件管理器裏禁用
dsh-purge; - 刪掉
node_modules/dsh-purge以及 patch 裏的對應段落。
安裝位置¶
插件包含宿主端和客戶端兩部分,源碼與運行時的路徑如下:
源碼 <workspace>\purge-plugin\
已安裝 %USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-purge\
配置 %USERPROFILE%\.dsh\profiles\desktop\cordis.patch.yml
改源碼後需要複製到已安裝目錄並重啓 DSH 才生效,客戶端模塊不做熱替換。相關文件職責如下:
index.js 宿主:刪除引擎 + /purge 命令
client.js 瀏覽器:菜單項 + 自繪對話框
cordis.patch.yml 插件註冊行
locale/{zh,en}.json 插件管理器裏顯示的名稱與簡介
icon.svg 圖標
test.mjs 刪除引擎單元測試(node test.mjs)
典型用法¶
以桌面端場景爲例,操作路徑如下。
1、看到一個已經不需要的會話,點會話行的「⋯」菜單,選「徹底刪除會話」。對話框確認後,磁盤日誌目錄被刪除,該會話從工作區摘除並歸檔隱藏。
2、想清理整個工作區時,在同一菜單裏選「徹底刪除所在工作區」。插件會刪掉該工作區名下所有會話的日誌目錄,並通過 WorkspaceRegistry.delete() 刪除註冊,側欄即時消失。
3、如果更喜歡命令,用斜槓命令完成同樣操作:
/purge here
/purge session <sessionId>
/purge workspace-of <sessionId>
4、單元測試可以在源碼目錄執行:
node test.mjs
適用場景與注意¶
適合以下幾類人:
- 需要在 web 或 desktop 端真正清掉廢棄會話日誌、騰出磁盤空間的開發者;
- 希望用斜槓命令批量清理會話或工作區的開發者;
- 知道 DSH 內置刪除只是取消註冊、願意用插件補足真刪能力的用戶。
使用時需特別注意:
- 插件以當前 dsh 進程的權限運行,刪除的是真實文件。安裝前應自行檢查源碼與許可證,確認後再啓用。
- 刪除不可撤銷,沒有回收站;插件只刪會話日誌與註冊記錄,工作區磁盤目錄不會被碰。
- 會話刪除後其 id 可能短暫殘留在歸檔集合中,重啓 DSH 後清空,這是已知限制,不是數據殘留到磁盤。
- 工作區刪除入口掛在會話菜單裏,是受側欄 slot 限制的取捨,使用時注意選中的是會話而不是工作區行。
小結¶
dsh-purge 做的事很聚焦:把 DSH「只能歸檔、只取消註冊」的刪除行爲,補成真正落到磁盤的刪除,同時保留菜單和斜槓命令兩種入口。它不碰工程文件、不提供回收站,適合清楚後果後再使用的開發者。
相關鏈接:
- 社區目錄頁:https://www.skillhub.cn/plugins/Manbaout-08/dsh-purge
- GitHub:https://github.com/Manbaout-08/dsh-purge
說明:社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係,不是官方應用商店。