dsh-session-clean-delete:在 DeepSeek Harness 側邊欄添加永久刪除會話能力

前言

在 DeepSeek Harness(DSH)中,Archive 會話只是將行移到“歸檔”列表,且可以撤銷。對於需要徹底清理的會話,Archive 不夠用。一個簡單的 rm session.log 往往只刪除日誌文件,而不會讓行從側邊欄消失,因爲 Host 仍然持有會話的“live”狀態,刷新後會重新出現。

下面介紹一個插件,它在側邊欄每個會話的 … 菜單中添加“刪除會話”操作,並在刪除前彈出確認對話框,告知即將刪除的內容。確認後,它會真正停止會話工作、解綁會話目錄與投影檢查點、從所有註冊表中釋放 ID,並刷新側邊欄,讓行徹底消失。該插件不提供撤銷與回收站,由對話框明確提示這一點。

插件是什麼

  • 名稱:dsh-session-clean-delete
  • 維護者:wilsonchengassistant
  • 類型:客戶端插件
  • 核心價值:爲 DSH 側邊欄會話菜單提供“永久刪除會話”能力,與 Archive 互爲補充

插件通過一個 Typert Remote 服務實現,不依賴 HTTP 路由與權限檢查,瀏覽器端通過 RPC 調用 Host 端的 sessionDelete 服務。確認對話框會列出會話的 live 狀態、日誌大小、運行中的輪次、子代理、後臺任務與提醒數量,並顯示將被刪除的提醒總數。

核心功能

  1. 菜單入口:在每個會話的 … 菜單中插入“刪除會話”行,順序在 Pin / Rename / Fork / Archive 之後。
  2. 確認對話框:打開後顯示:
    - 會話是否仍在當前機器上打開(無法在之後重新打開);
    - 即將被刪除的日誌大小;
    - 綁定到該會話的運行中輪次、子代理、後臺任務與提醒;
    - 隨同刪除的提醒數量。
  3. 刪除執行:確認後執行:
    - 停止會話的工作;
    - 解綁會話目錄與投影檢查點;
    - 按代理循環的銷燬順序先釋放代理,再釋放會話,並調用 unarchiveSession(id) 與 workspace.detachSession(id);
    - 從各個註冊表中釋放 ID。
  4. 刷新側邊欄:刪除完成後刷新側邊欄,會話行消失。
  5. 無撤銷與回收站:對話框明確提示沒有撤銷與回收站。

安裝與啓用

插件以 dsh.bundle manifest 形式發佈,dsh plugin 會將其安裝爲 profile 層,無需手動編輯 cordis.patch.yml。包聲明零依賴,不添加額外的 @deepseek-ai/* 導入。

  1. 在終端執行:
dsh plugin --profile web add dsh-session-clean-delete

這是 npm 名稱,也是倉庫名稱。

  1. 從源碼克隆後,使用 file: 路徑安裝:
dsh plugin --profile web add file:/path/to/dsh-session-clean-delete

該命令會做兩件事:將包加入依賴,並把它追加到 profile 的 package.json 的 dsh.profile.bundles 中。後者是關鍵,因爲 cordis.patch.yml 只對被 bundle 列表命名的包生效。

  1. 驗證包已加入樹:
dsh --profile <profile> --dump-config | grep -B1 session-clean-delete

輸出中應出現類似:

# == …/dsh-session-clean-delete/cordis.patch.yml
- id: session-clean-delete
  name: dsh-session-clean-delete
  1. 重啓 Harness。Bundle 在啓動時組合,重啓前菜單中不會出現“刪除會話”行。

常見問題與排查

  • 重複執行相同 add 命令是無操作的。如需重新安裝,先刪除本地副本:rm -rf ~/.dsh/profiles/<profile>/node_modules/dsh-session-clean-delete。
  • pnpm 會將包複製到 profile 而非創建符號鏈接,修改源碼不會影響運行中的插件。調試時可手動複製 lib/*.js 到 profile 中的 node_modules/dsh-session-clean-delete/lib/;client.js 支持熱重載,index.js 需要重啓。
  • 確保 dsh plugin 能找到 pnpm(corepack enable pnpm)。
  • 若包發佈不足 24 小時,pnpm 可能安裝低於 registry latest 的版本,這是 minimumReleaseAge 安全機制,不是緩存問題。可等待或使用版本範圍 ^x.y.z。

適用場景與注意

  • 適合需要徹底清理會話、不希望保留歸檔列表的場景,例如清理大量測試會話、歸檔後仍需永久移除的會話。
  • 插件以當前 DSH 進程的權限運行,刪除操作不可逆,請謹慎確認對話框中的信息。
  • 安裝前建議檢查源碼與許可證(MIT),確保符合你的使用環境與安全要求。

小結

該插件爲 DSH 側邊欄提供了“永久刪除會話”的選項,與 Archive 形成互補。它通過確認對話框展示會話狀態與刪除內容,並正確處理 Host 的 live 狀態,避免簡單 rm 導致的行重新出現。安裝簡單,依賴零,適合需要在會話管理中徹底清理的場景。

  • 目錄頁:https://www.skillhub.cn/plugins/wilsonchengassistant/dsh-session-clean-delete
  • GitHub:https://github.com/wilsonchengassistant/dsh-session-clean-delete
羽毛球分组比赛记分
小程序二维码

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

小夜