dsh-purge:給 DSH 會話和工作區補上真正的磁盤刪除

前言

DSH 的會話管理有個容易被忽略的點:內置的「刪除」並不是刪文件。刪掉工作區後,會話只是從分組裏摘出來、掉進「未分組」;會話本身則根本沒有刪除入口,因爲核心設計裏會話只能歸檔。等到磁盤上積累了大量日誌目錄,常規操作清不掉,就需要一個能真正落盤的刪除手段。

下面介紹的 dsh-purge 就是補這個缺口的插件,屬於客戶端分類,由 GitHub 用戶 Manbaout-08 維護(npm 包作者署名爲 CTTWang)。它把會話與工作區的刪除做成真實磁盤刪除,同時提供會話菜單入口和斜槓命令。

這是什麼

一句話定位:dsh-purge 爲 DeepSeek Harness(DSH)提供會話和工作區的永久刪除能力,刪除的是磁盤上的實際文件,而不是取消註冊。

它解決的核心問題有兩點:

  1. 會話沒有刪除入口,只能歸檔,日誌目錄一直留在磁盤上。
  2. 工作區刪除只取消註冊,會留下「未分組」殘渣,磁盤文件仍在。

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                       刪當前會話

刪除行爲

  1. 工作區:走宿主內存裏的 WorkspaceRegistry.delete(),內存與 workspace.json 一起更新,不需要刷新頁面,也不會留下「未分組」殘渣。
  2. 會話:核心沒有刪除會話的 API,sessions 服務的內存目錄無法移除。實際做法是「刪日誌文件 → detach → archive」:文件真的沒了,行從主視圖消失,只在「已歸檔會話」裏可能殘留一個打不開的幽靈條目,重啓 DSH 後徹底消失。
  3. 邊界:插件只動會話日誌與註冊記錄,工作區對應的磁盤目錄(即你的工程文件)永遠不碰。

刪除是不可逆的

刪除不可撤銷,沒有回收站。執行前請看清命令作用的對象,尤其 /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 開關。禁用時三選一:

  1. 在 cordis.patch.yml 裏把 enabled: true 改成 false;
  2. 在插件管理器裏禁用 dsh-purge;
  3. 刪掉 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

適用場景與注意

適合以下幾類人:

  1. 需要在 web 或 desktop 端真正清掉廢棄會話日誌、騰出磁盤空間的開發者;
  2. 希望用斜槓命令批量清理會話或工作區的開發者;
  3. 知道 DSH 內置刪除只是取消註冊、願意用插件補足真刪能力的用戶。

使用時需特別注意:

  1. 插件以當前 dsh 進程的權限運行,刪除的是真實文件。安裝前應自行檢查源碼與許可證,確認後再啓用。
  2. 刪除不可撤銷,沒有回收站;插件只刪會話日誌與註冊記錄,工作區磁盤目錄不會被碰。
  3. 會話刪除後其 id 可能短暫殘留在歸檔集合中,重啓 DSH 後清空,這是已知限制,不是數據殘留到磁盤。
  4. 工作區刪除入口掛在會話菜單裏,是受側欄 slot 限制的取捨,使用時注意選中的是會話而不是工作區行。

小結

dsh-purge 做的事很聚焦:把 DSH「只能歸檔、只取消註冊」的刪除行爲,補成真正落到磁盤的刪除,同時保留菜單和斜槓命令兩種入口。它不碰工程文件、不提供回收站,適合清楚後果後再使用的開發者。

相關鏈接:

  • 社區目錄頁:https://www.skillhub.cn/plugins/Manbaout-08/dsh-purge
  • GitHub:https://github.com/Manbaout-08/dsh-purge

說明:社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係,不是官方應用商店。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜