dsh-rewind:同窗口就地回退對話與文件

前言

在 DeepSeek Harness(DSH)裏做智能體開發,對話一旦走錯方向,常見做法是 fork 分支開新會話,或靠 git 手動還原工作區。前者要切換上下文,後者只覆蓋文件、不管模型側已讀過的對話。Claude Code 的 /rewind 提供了一種不同思路:在同一會話窗口內,把對話回退到任意更早的用戶消息,並可選擇一併還原被寫工具改過的文件。dsh-rewind 由 SiriLee 維護,把這套語義落到 DSH web 配置檔上,分類爲工作流插件,GitHub 倉庫 sirilee/dsh-rewind 當前約 11 stars。

這是什麼

dsh-rewind 是 DSH 插件,npm 包名爲 dsh-rewind-plugin(注意:npm 上的 dsh-rewind 屬於其他作者,安裝時勿用錯)。它只做一件事:在當前會話窗口內就地回退到任意用戶消息,可選同時還原工作區中被跟蹤工具改過的文件,對齊 Claude Code /rewind 語義。插件不新建分支、不切換窗口;會話日誌採用只追加策略,回退通過遮蔽標記實現,不刪改歷史記錄。

核心功能

就地對話回退

回退目標消息及其之後的全部內容——agent 回覆、工具調用——會同時從模型上下文和界面渲染中撤回。目標消息的文本會回填到輸入框,改完後可直接重發。回退可反覆進行,無階段或次數限制;插話(模型尚未讀取的 steering 消息)也可作爲回退目標。若 agent 正在運行,插件會先強制停止當前回合再執行回退。

輕量工作區備份與還原

插件跟蹤寫文件類工具:writeeditstr_replace_editor。每次寫操作前在審批門放行之後捕獲原內容,按對話輪次分組並落盤到 ~/.dsh/rewind-snapshots/,跨重啓保留(每會話最近 100 組)。每條用戶消息邊界會重掃已跟蹤文件,外部編輯或刪除也會被記錄。還原前即時比對磁盤,只處理真正不一致的文件;符號鏈接與硬鏈接跳過。不依賴 git,普通目錄即可使用。

多種觸發方式

每條用戶消息旁有「↶ 回退」按鈕;也可輸入 /rewind 打開候選列表,或用快捷鍵操作。模式浮層提供「僅回退對話」與「回退對話和代碼」;後者在目標之後有可還原變更時可用,會先展示文件變更清單再確認。候選列表與浮層支持 ↑↓ 移動、Enter 確認、Esc 取消。

信息安全與測試

插件只向會話日誌追加回退標記,不刪改已記錄歷史;文件備份與還原限定在 ~/.dsh/rewind-snapshots/,不觸碰 git 倉庫,無網絡請求。項目包含單元、探針與端到端主機驗證,覆蓋日誌重放、續接、跨重啓等場景。第三方 DOM 插件可通過 dsh-rewind-plugin/client 導出的穩定函數獲知被撤回行,詳見倉庫內 docs/contract/client-contract.zh.md

安裝與啓用

在 DSH web 配置檔下執行官方安裝命令:

dsh plugin --profile web add dsh-rewind-plugin

環境要求:Node.js ^22.19.0 || >=24.0.0;peer 依賴 @deepseek-ai/* 由 harness 運行時解析。當前 npm 版本爲 0.4.2,許可證 MIT。DSH 與該項目均處於開發者預覽階段,生產環境建議 pin 精確版本。

典型用法

  1. 在對話中找到要回退的用戶消息,或輸入 /rewind 從候選列表選擇。
  2. 在浮層中選擇「僅回退對話」或「回退對話和代碼」。
  3. 回退立即生效:界面回到目標消息當時的狀態,被撤回消息文本填入輸入框,修改後重發。

「回退對話和代碼」會先列出受影響文件,確認後執行還原。重複回退同一目標對已一致的文件爲零副作用。

適用場景與注意

適合需要在同一窗口內快速試錯、不想 fork 新會話的 DSH 開發者;適合沒有 git 或不想依賴整樹快照的輕量工作區。以下情況不在插件職責內:整樹或 Git 級快照、子代理會話內的編輯、fork 分支回退(harness 已內置)。

使用前須知:

  • 插件以當前 dsh 進程權限運行,安裝前應閱讀源碼與 MIT 許可證。
  • 回退本身無法撤銷,但被撤回內容仍保留在會話日誌中,可手動編輯日誌恢復。
  • /export 導出的日誌包含已撤回消息,插件無法改動導出行爲。
  • v0.2.4 及更早版本回退過的會話,繼續對話後可能加載歷史失敗;v0.3.3 及更早版本回退過的會話,壓縮對話(compact)可能不可用。詳見倉庫 docs/compat/troubleshooting.zh.md

結尾

dsh-rewind 把 Claude Code 式的就地回退落到 DSH:對話與文件可在同窗口內一鍵撤回,日誌只追加、文件備份輕量落盤。社區目錄頁與 GitHub 倉庫:

  • https://www.skillhub.cn/plugins/SiriLee/dsh-rewind
  • https://github.com/SiriLee/dsh-rewind
羽毛球分组比赛记分
小程序二维码

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

小夜