dsh-rewind-lite:同窗口對話回退與文件還原

前言

在 DeepSeek Harness(DSH)裏調試智能體,經常遇到「走了一步才發現前面的提示詞寫錯了」或者「改完文件後想回到上一次交互點」。如果手動刪掉、重寫,日誌就斷了,搜索和導出都不方便。現有的 DSH 交互方式只能新建分支,無法「就地」回退並保持歷史完整。

dsh-rewind-lite 插件提供的是「就地回退」能力:在當前會話窗口內,把對話回退到任意更早的用戶消息,只追加一條標記,不新建分支、不刪改歷史。被撤回的提示詞會回填到輸入框,可以修改後直接重發。同時,它還支持文件還原:回退時把 AI 改過的文件恢復成改動前的狀態。

這是什麼

dsh-rewind-lite 是一個 DeepSeek Harness 插件,由用戶 280832849 獨立維護。它不修改 DSH 客戶端代碼,而是通過官方擴展點(session.append、surfaceOp.replace、commands、slots、commandUi.decorate、tools/* 事件)實現功能。核心語義與 Claude Code 的 /rewind 一致,但只做一件事:就地回退,不建分支、不留副本。

核心功能

  • 命令入口:提供 /rewind 和 /undo 命令,打開官方 popupSelect 選擇目標。
  • 回退到任意更早用戶消息:撤回目標及其之後的所有內容,模型上下文截斷到目標之前。
  • 提示詞回填:原提示詞回到輸入框,可修改後直接重發。若 setDraft 失敗,會嘗試 DOM 回填。
  • 界面隱藏:被撤回的聊天行在界面中隱藏,持久化刷新/換會話/重啓後仍然隱藏。
  • 只追加不刪改:日誌保留全部原文,可搜索、可導出。
  • 併發與狀態守衛:生成中先取消再回退、併發回退加鎖、被壓縮遮蔽的目標拒絕、子會話拒絕。
  • 二次確認:消息旁「↶」按鈕,可選擇「只回退對話」或「對話+文件」。
  • 文件還原:回退時把 AI 改過的文件還原,刪掉目標之後新建的文件。
  • 撤銷回退:設計如此,不可撤銷。

安裝與啓用

要求:DSH >=0.2.1-rc.2 <0.3.0-0,Node 22+。

方式一:從 GitHub 安裝(推薦)

dsh plugin --profile desktop add "github:280832849/dsh-rewind-lite"

方式二:本地打包安裝

npm install && npm run build && npm pack
dsh plugin --profile desktop add "file:$PWD/dsh-rewind-lite-0.4.0.tgz"

安裝完成後重啓 DSH,再刷新頁面。

卸載

dsh plugin --profile desktop remove dsh-rewind-lite

典型用法

  1. 在對話中輸入 /rewind 或 /undo,彈出候選列表(最新的在前)。
  2. 選擇一條消息,執行回退:模型上下文截斷到這條消息之前,界面隱藏這條及其之後的行,原提示詞回到輸入框。
  3. 修改後直接發送。

也可以手動輸入 /rewind @123 指定目標(seq 見候選列表),效果相同。

點擊消息旁的「↶」按鈕,會彈出確認對話框,可選擇「只回退對話」或「對話+文件」。

適用場景與注意

適合需要「在當前會話內回退並保持歷史完整」的場景,例如調試提示詞、糾正文件改錯、重新組織對話流程。

插件以 DSH 進程權限運行,安裝前建議查看源碼與許可證(MIT)。

已知限制:
- 回退不可撤銷,想恢復只能重新發消息。
- 目標消息被壓縮遮蔽後不能再回退。
- 回退標記會短暫出現在模型上下文裏,重發後與新消息並存。
- 文件備份從插件加載後開始記錄,插件裝上之前的改動沒有備份。
- 「對話+文件」會覆蓋你在 AI 之後又手動改過的文件。

短結尾

dsh-rewind-lite 通過「追加標記 + 表面截斷 + 文件快照」的方式,實現了同窗口內的就地回退與文件還原,保持了歷史日誌的完整性。它不修改 DSH 客戶端代碼,通過官方擴展點實現,適合需要頻繁調整交互流程的開發者。

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

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

小夜