dsh-rewind:爲 DeepSeek Harness 引入時間旅行能力

在 DeepSeek Harness (dsh) 的插件化架構下,開發者常需要回退對話歷史或修正代碼變更。dsh-rewind 插件將 Claude Code 的 rewind 能力移植到 dsh,允許用戶指代歷史消息,把對話、代碼或兩者一起回退到那個時刻,或從那裏開一個摘要分支。

插件概覽

dsh-rewind 是一個第三方工作流插件,由 SipengXie2024 維護,採用 MIT 許可證。它通過在 dsh 客戶端側替換用戶消息渲染器,並配合主機側的 RPC 網關與捕獲中間件,實現文件快照的捕獲與恢復。

核心功能

插件提供了菜單項,對位 Claude Code 的 rewind 彈出菜單:

  1. 恢復對話(編輯重跑)
    氣泡就地變編輯框,確認後 fork 到上一輪 turn/end 邊界,打開子會話並重發改寫後的消息。

  2. 恢復對話與代碼
    fork 前先展示文件回退卡片;確認時先把勾選文件寫回邊界前內容,再 fork 重跑。

  3. 僅恢復代碼
    只做文件回退,不 fork 不發消息,留在當前會話。

  4. 摘要至此,開新分支
    fork(含點擊輪)→ 打開分支 → 自動執行 /compact 壓縮頭段歷史。

插件支持捕獲 write、edit、str_replace_editor 工具變更。菜單打開時會並行探測文件變動數,若無變動則置灰對應選項。支持 14 天自動 GC(垃圾回收)以及熱重載(/reload dsh-rewind)。

安裝與啓用

安裝前請確保已構建好安裝包。

1、構建插件

npm run build
npm pack

2、安裝插件

dsh plugin --profile web add dsh-rewind-<version>.tgz

3、配置參數
在 dsh 的 settings.yaml 中添加以下配置:

rewind:
  captureEnabled: true   # 關掉即停止捕獲(已有快照不動)
  retentionDays: 14      # 0 = 立即全部過期(下次掃描清空)
  maxFileBytes: 10485760 # 超過此大小的改前內容不入庫(標 lost)

典型用法

安裝並配置完成後,在對話歷史中找到任意一條用戶消息,點擊出現的回退菜單即可進行操作。菜單支持通過圖示確認文件變更,並在確認後執行相應的恢復邏輯。

適用場景與邊界

此插件適合需要精細控制對話歷史和代碼變更的開發者。

請注意以下邊界條件:

  • bash 等副作用工具不兜底:只捕獲三個結構化寫工具,模型經 bash 寫的文件或跑掉的命令無法回退。
  • 恢復不經審批門:直接寫入文件,不觸發沙箱升級彈窗。
  • 帶圖消息重跑:讀取附件轉 base64 重發,讀取失敗時降級爲純文本重發並提示。
  • steering 消息無回退按鈕:fork 是輪粒度,輪中插話沒有獨立邊界。
  • 首條用戶消息禁用回退:無上一輪邊界可回。
  • create 的文件只報告需手動刪除:插件不刪除文件,需手動處理。

dsh-rewind 通過文件快照機制和邊界控制,爲 dsh 用戶提供了類似時間旅行的調試能力。更多細節可查閱官方目錄或源碼。

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

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

小夜