dsh-manage-deletion:DSH 會話刪除與回收站

前言

在 DeepSeek Harness(DSH)里長期跑智能體會積累大量會話。宿主默認提供歸檔或手工刪目錄的方式,但「刪會話」和「刪會話在工作區裏寫過的文件」往往要分開處理,誤刪也難按時間批量找回。插件 dsh-manage-deletion(維護者 ingk888766-cloud,分類 admin-security)把刪除、可選文件範圍、回收站還原和多選批量合成一套流程;正在執行的會話會被拒絕,避免打斷活動回合。

這是什麼

dsh-manage-deletion 是 DSH 的會話刪除管理插件:刪會話時可選擇是否一併移走該會話在工作目錄內通過 write / edit 產生過的文件;刪除默認進插件回收站,可按刪除時間單條或批量還原;支持側欄掃描、行內垃圾桶與多選批量。實現上數據只走宿主服務(sessionPersistence、sessions、workspaceRegistry 等),不直接解析宿主內部文件結構;運行時無額外 npm 依賴(Node 內置模塊 + React)。當前包版本 1.3.5,許可證 MIT。

核心功能

入口與操作方式

  • 側欄 「刪除管理」 頁:快速掃描、勾選、批量刪除。
  • 會話行右側 垃圾桶:刪單個會話。
  • 工作區頂部 「多選」:勾會話或全選後「刪除選中」。

刪除範圍

  • 默認:會話日誌目錄移入 $DSH_HOME/manage-deletion/trash/<條目>/session,並寫入 index.json;DSH 側欄中該會話消失。
  • 可選「同時刪除這些會話產生的文件」:僅收集該會話自己寫/編過、且路徑落在該會話工作目錄(cwd)內的文件;確認對話框會逐條列出,可取消勾選。恢復時會話與勾選過的文件一併還原。不在 cwd 內的路徑一律忽略,工作區裏其他文件不會被動到。

回收站與徹底刪除

回收站按刪除時間列出條目,支持單條或批量「恢復選中」。回收站內的 徹底刪除 會物理刪除日誌與工作區副本,需二次確認,不可恢復。

拒絕與安全邊界

  • 正在跑(有活動回合)的會話:拒絕刪除,不動其文件。
  • 打開但空閒的會話可以刪。
  • 置頂會話可先刪:刪除前會自動取消置頂。
  • 刪除前會調用宿主 workspaceRegistry.archiveSession() 歸檔,再移動日誌;移動失敗會回滾歸檔,避免「側欄看不見但數據仍在」的殘留狀態。
  • 同一時刻只允許一個刪除/恢復操作(併發保護)。

掃描與列表性能

會話數量多時,掃描結果緩存 60 秒,首屏默認 50 行(可通過配置調整 listLimit 等)。

安裝與啓用

  1. 安裝插件(命令來自官方 README):
dsh plugin --profile desktop add dsh-manage-deletion

也可在 DSH 插件市場安裝等價包名 dsh-manage-deletion。

  1. 重啓 DSH:Web 端重啓服務並刷新頁面;Desktop 退出後重新打開。側欄會出現 「刪除管理」。

環境與兼容(見倉庫 package.json):

  • DSH:>=0.2.0-rc.2 <0.3.0(在 0.2.2-rc.1 上開發與實測)
  • Node:>=22.19
  • profile:web、desktop

典型用法

30 秒上手(界面)

  1. 刪單個:鼠標移到會話行 → 點右側垃圾桶 → 確認框點「刪除」。
  2. 批量:工作區頂部「多選」→ 勾選會話(或「全選」)→「刪除選中」。
  3. 掃全部:側欄「刪除管理」→「快速掃描」→ 勾選 →「刪除選中」。
  4. 誤刪恢復:刪除管理 →「回收站」→ 勾選 →「恢復選中」。

composition 配置(可選)

插件不導出 schemastery schema;在 composition 條目裏爲 manage-deletion 增加 config,例如控制空會話判定、批量上限、回收站目錄等:

- id: manage-deletion
  name: 'dsh-manage-deletion'
  config:
    blankMaxBytes: 1200     # 掃描時的空會話上限
    tinyMaxBytes: 20480     # 很小且很久沒動
    oldDays: 30
    threshold: 20
    includeSubagents: true
    titleResolveLimit: 200  # 一次掃描最多摺疊多少個標題
    listLimit: 1000
    maxBatch: 50            # 單次刪除上限
    trashDir: ''            # 空 = $DSH_HOME/manage-deletion/trash

Agent 工具

智能體可通過宿主暴露的工具做只讀掃描或經確認的清理:

工具 作用
manage_deletion_scan 只讀掃描:統計、候選(含判定依據)、回收站狀態
manage_deletion_clean mode=archive / unarchive / trash;trash 可帶 deleteFiles、deleteExtraFiles;必須 confirm=true
manage_deletion_trash action=list / restore / purge

示例意圖:「掃一下空會話和子代理殘留」→ manage_deletion_scan;「把前 10 個刪掉」→ manage_deletion_clean(mode=trash, confirm=true)。

適用場景與注意

適合:需要定期清理空會話、舊會話或子代理殘留;希望刪除前有清單、刪除後有回收站;要在界面與 Agent 工具兩條路徑上統一語義的團隊或個人。

務必注意:

  • 插件以當前 DSH 進程的權限讀寫會話目錄與工作區文件;安裝前請閱讀源碼與 MIT 許可證,確認是否符合你的安全策略(分類爲 admin-security 即與此相關)。
  • 「同時刪除產生的文件」有 cwd 硬邊界,不會刪工作區根目錄下與會話無關的文件;徹底刪除不可恢復。
  • DSH 生態遵循「一切皆插件」;社區目錄(如 SkillHub)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文安裝與能力描述均以倉庫 README 與 package.json 爲準。

延伸閱讀

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

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

小夜