dsh-delete:DeepSeek Harness 的可恢復對話刪除插件

前言

DeepSeek Harness (DSH) 的會話持久化採用追加模式,且公開服務未提供刪除方法。在 Agent 運行時,其銷燬句柄僅屬於創建者,插件無法在活動寫入器下安全移出日誌。dsh-delete 通過兩階段策略解決這一問題:運行時僅持久化刪除請求並隱藏會話,重啓時才完成日誌的原子移動與歸檔。

功能概覽

dsh-delete 是一個 Memory 類插件,由 Hyna-hla 維護。它爲 DSH 添加了可恢復的對話刪除能力,核心功能包括:

  1. 會話菜單入口:在會話列表的 … 菜單中增加“刪除對話”選項。
  2. 命令行接口:註冊 /delete-conversation 人類命令。
  3. 即時隱藏與隊列:確認後立即將會話加入刪除隊列並從列表中隱藏。
  4. 生命週期驗證:Web Workspace 在構建會話索引前,會先驗證會話的完整生命週期狀態。
  5. 可恢復歸檔:重啓 DSH 時,將日誌目錄移動到可恢復的垃圾目錄(默認 ~/.dsh/conversation-trash)。

安裝與啓用

插件安裝後需重啓 DSH 生效。使用官方 CLI 命令添加插件:

node /path/to/DSH/apps/cli/lib/bin.js plugin --profile web add /path/to/DSH-DELETE

安裝完成後,Web Workspace 會等待 conversationDeletion 服務完成啓動恢復,再構建會話索引。

使用方法

界面操作

在會話列表中找到目標會話,點擊行尾的 … 菜單,選擇 Delete conversation。確認卡片出現後點擊 Delete conversation。

命令行操作

命令要求字面量 CONFIRM,且必須區分大小寫。

  • 刪除當前對話:
    /delete-conversation CONFIRM
  • 刪除指定會話:
    /delete-conversation <session-id> CONFIRM

確認後,目標會話會立即從列表中消失。下次啓動 DSH 時,日誌會被移入垃圾目錄。

配置與注意事項

配置項

插件支持以下配置(cordis.patch.yml 中配置):

字段 默認值 說明
stateDir ~/.dsh/conversation-trash 垃圾目錄,必須爲絕對路徑且位於會話目錄之外
commandName delete-conversation 可選的人類命令別名(無前導 /)

安全與限制

  • 確認機制:刪除操作必須包含字面量 CONFIRM,否則不會執行任何寫入。
  • 後端限制:僅支持 JSONL 後端,明確拒絕 SQLite 後端。
  • 原子操作:日誌移動使用同文件系統重命名,不使用 unlink,確保崩潰後可恢復。
  • Node 版本:構建和運行需要 Node.js 版本 ^22.19.0 || >=24.0.0。
  • 數據保留:日誌進入可恢復垃圾箱,最終清理策略由部署管理員決定。

恢復數據

若需恢復誤刪的對話,需停止 DSH,進入垃圾目錄,刪除 deletion.json 文件,然後將對應目錄移回原始位置。注意:恢復操作必須在 DSH 停止時進行,運行中恢復可能導致數據損壞。

生態信息

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

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

小夜