DeepSeek Harness 消息回滾、刪除與恢復插件

前言

DeepSeek Harness(DSH)在會話管理上已經提供了會話 fork、導出等基礎能力,但對單條消息的回滾、刪除與恢復仍然缺失。官方 SurfaceOp 只有 append 和 replace,沒有「解除遮蔽」的操作;官方文檔也明確指出會話只能歸檔,不能刪除。這意味着在多輪對話中,一旦出現錯誤或需要調整歷史內容,只能通過「重新開始對話」或手動編輯會話文件來處理,操作成本高且容易破壞會話結構。

@240xu/dsh-message-ops 是一個 DSH web 插件,專注於補齊官方缺失的消息級操作能力:消息回滾(遮蔽該條及其後續內容)、單條刪除、以及回滾/刪除的恢復。插件通過 surfaceOp: replace 的 system 事件實現這些操作,不直接重寫日誌文件,由 DSH 引擎的 assertProvenance 校驗權限與來源。分支功能在 0.9.0 中已移除,改用官方 session/fork;導出功能也改爲使用官方 /api/session.export,避免重複造輪子。

核心功能

本插件提供三類核心能力:

  • 消息回滾:將指定消息及其後的所有內容遮蔽,相當於「向前撤銷」到該消息狀態。
  • 單條刪除:僅遮蔽指定消息,保留其後的內容。
  • 恢復:撤銷一次回滾或刪除,通過重放被遮蔽區間的消息文本實現,而非直接解除遮蔽。

插件通過右側 OpsPanel 抽屜提供 UI 入口,支持在消息列表中選擇單條消息進行回滾、刪除或分支;整會話刪除則進入回收站 tab,需輸入會話標題確認後保留 7 天,可通過 purge 永久刪除。

安裝與啓用

插件爲純 Node.js 實現,零 npm 依賴,僅使用 node:fs / node:zlib / node:path / node:url,壓縮使用 Node 內建 zlib.zstdCompressSync,需要 Node ≥ 23.5,在 Termux 與 Windows 上通用。

安裝命令如下:

# Termux / Linux
dsh plugin --profile web add @240xu/dsh-message-ops

# Windows
dsh plugin --profile web add @240xu/dsh-message-ops
# 或本地目錄:
dsh plugin --profile web add file:C:/path/to/dsh-message-ops

安裝完成後,重啓 DSH web 實例,在會話頭部點擊 Message ops 按鈕,即可打開 OpsPanel 抽屜。

典型用法

在會話列表中打開一個會話後,通過以下方式觸發消息操作:

  • 會話頭部的 Message ops 按鈕 → 右側 OpsPanel 抽屜(消息 / 回收站雙 tab)。
  • 助手消息 hover 行的 Revert to here / Quote to composer。
  • 用戶消息 hover 行的 Revert to here。
  • 輸入框上方的回撤貼條:展開後可逐條 Restore。
  • 側欄會話行菜單。

在 OpsPanel 中選擇一條消息,點擊「回滾」或「僅刪除」後,系統會進行二次確認;運行中的會話會被拒絕,提示先停止會話。回滾或刪除後,可通過「恢復」按鈕或輸入框上方的貼條逐條撤銷操作。

適用場景與注意

本插件適合需要在單次會話中調整歷史消息、清理錯誤內容或回退到某個中間狀態的場景。由於插件以當前 DSH 進程的權限運行,安裝前建議查看源碼與許可證,確保符合你的使用策略。

插件當前版本爲 0.11.2,修復了在 live 會話中可能產生重複 turn、歷史日誌格式兼容性以及合成 turn 競態等問題。在使用前請確保 DSH 引擎版本與插件兼容。

結語

@240xu/dsh-message-ops 在不破壞 DSH 日誌結構的前提下,爲會話提供了消息級的回滾、刪除與恢復能力,讓對話調試與歷史調整更加可控。插件目錄頁與源碼倉庫如下:

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

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

小夜