前言¶
DeepSeek Harness (DSH) 的原生行爲不支持已發送消息的編輯或撤回。dsh-rewind-plugin 插件通過將對話表面回溯到已發送消息之前,隱藏該消息及之後的所有內容,並將原始文本放回編輯器來解決此痛點。
它是什麼¶
該插件由 JochenYang 維護,旨在爲 DSH 提供消息召回能力。它將選定的用戶消息視爲“邊界”,隱藏該消息及之後的內容,並允許你用原始文本重新發送。
安裝與啓用¶
Web Profile¶
使用命令行安裝:
dsh plugin --profile web add @jochenyang/dsh-rewind-plugin
也可以直接使用發佈包地址或倉庫地址:
dsh plugin --profile web add https://github.com/JochenYang/dsh-rewind-plugin/releases/latest/download/dsh-rewind-plugin.tgz
dsh plugin --profile web add github:JochenYang/dsh-rewind-plugin
Desktop Profile¶
官方桌面客戶端沒有命令行支持。需在應用內安裝:Settings -> Plugins -> Add plugin,在“Package name or address”字段輸入 @jochenyang/dsh-rewind-plugin,安裝後重啓應用。
基本用法¶
命令行¶
- 列出可召回的消息:
/rewind - 召回第 n 條消息:
/rewind <n> - 預覽召回效果(不執行):
/rewind plan <n>
界面交互¶
在對話記錄中懸停用戶消息,會顯示召回圖標。
核心特性¶
- 編輯器預填充:召回後,文本會回到輸入框,供你重新編輯或發送。
- 隔離區管理:在 Settings -> Recall quarantine 中,所有被覆蓋的文件和字節都會被移動到隔離區,不會直接刪除,可按會話或單行清理。
- 文件保留:被召回範圍創建的文件會移至隔離區,而不是被取消鏈接。
- 日誌完整性:會話日誌是僅追加的,召回操作會追加一個事件,確保原始數據不丟失。
注意事項¶
- 壓縮限制:召回操作在最近的壓縮處停止。壓縮會替換歷史摘要,因此無法回溯到壓縮之前。
/rewind命令會明確指出這個邊界。 - 狀態聲明:如果召回無法覆蓋全部內容,插件會明確提示,而不是聲稱已完全回溯。
- 運行時依賴:插件運行時依賴 DSH 內置包(如
@deepseek-ai/cordis,@deepseek-ai/dsh-session等),不鎖定特定版本,因此可以在不同版本的 DSH 上運行。 - 寫入權限:會話中同一時刻只允許一個編寫者,這是 DSH 的底層機制。
總結¶
該插件通過 surfaceOp: { op: 'replace' } 機制在會話日誌層面實現回溯,保證了數據的可讀性和完整性,同時通過隔離區管理文件變更,適合需要在 DSH 中修正已發送消息的場景。