dsh-undo
在终端中运行以下命令:
dsh plugin install ruaibeite/dsh-undo
将以下提示词粘贴到 DeepSeek Harness 对话框中:
在 DeepSeek Harness 中执行 dsh plugin install ruaibeite/dsh-undo 安装本插件(源码:https://github.com/ruaibeite/dsh-undo),安装后重启 dsh 生效。
插件介绍
Agent 改文件时,往往一轮对话里会动很多路径;若只想把「这一轮」的改动整体收回,对话回退类插件会连同上下文一起动,而单文件 git checkout 又费时且依赖 git。dsh-undo 专注文件层:在每次写入或编辑落盘前旁路记下原内容,按「轮次」把本轮动过的全部文件一次退回,刻意保持轻量、不碰对话历史。
核心能力是双路径快照(intent 钩子为主、fs 服务包装兜底)与跨机制去重,快照写在 $DSH_HOME 内、进程内 fs 完成,不 fork shell,因此在 workspace-write 等受限会话里也能持续记录。模型可调用 undo 工具,你也可以用 /undo 命令;Web 界面里助手消息动作行还有 ↶,三条入口共用同一套逻辑。回滚取每文件在本轮最早快照(新建文件则删除),回滚本身也会被记下,可再撤销;支持 list、按轮次或按快照 id 精细回退,以及 dryRun 预演。
它只看得见经 harness 文件服务落盘的改动,不替代 dsh-rewind、dsh-recall 那类「对话 + 文件」回退;超大文件与配置上限会按规则跳过快照。适合在 headless、无 Web UI 的 profile 里也需要「按轮次整批撤文件」的开发者,以及希望在 GUI 里一键 ↶ 或让模型自行决定何时 undo 的日常 harness 用户。
使用场景
- 一轮对话改了很多文件,想整体撤回而不动聊天记录
- 受限 workspace-write 会话里仍需要可靠记录写入前快照
- 让模型在改错时自行调用 undo,或你手动 /undo / ↶
适合人员
- 经常在 harness 里跑 agent 改代码的开发者
- 使用 headless 或无 Web UI profile 的用户
- 需要文件层回退、而非对话回退插件的重度 harness 用户