DeepSeek Harness 回滚后悔药:undo-savepoint 一键撤回与存档点回滚

逐帧拆解插件作者的实录:装一个插件,记住红「撤销」绿「恢复」两个按钮,认识桌面撤销管理器,再看一次被故意搞崩的 DSH 带着完整会话原样归来。

最近更新: 2026-10-01

DSH 撤销管理器桌面窗,自动库里列着 27 条快照,基线、自动、手动行依次排开,原因是插件挂载与配置变化——这是 DeepSeek Harness 没启动时也能打开的局外管理器
桌面撤销管理器:27 条快照,双击某行看差异

让 DSH 放开手干活——换依赖、重构插件、改 cordis.patch.yml——总有一天它会改坏一个你没备份的东西,而 DeepSeek Harness 本身没有 Ctrl+Z。社区的答案叫 dsh-undo-savepoint(lire-安安 开源,MIT 协议):插件挂载、配置变化、每 15 分钟、启动时都会自动存档,另有一个永不自动清理的手动存档库,专治后悔。

这一页讲的是「怎么用」——全部截图取自插件作者本人的实录,每张都深链回原视频对应秒数。如果你还在挑「装哪个回滚插件」,先看回滚插件集合: 回滚与撤销插件集合

TL;DR

  • ▸一条命令装好:dsh plugin --profile web add github:lire1131/dsh-undo-savepoint#master(Node.js ≥ 20),重启 dsh web,每个会话页头都会多出红「撤销」、绿「恢复」、灰「快照」三个按钮。
  • ▸三种入口:页头按钮、桌面快捷键 Ctrl+Alt+Z / Ctrl+Alt+Y(可在设置里改键),或者直接在对话里跟 AI 说一句,让它替你撤。
  • ▸撤销是带后悔档的软删除:每次回退前先落一条「后悔档」,手动库永不自动清理,自动库默认只留最新 20 份。
  • ▸DSH 起不来也能救:桌面撤销管理器在 DSH 之外照样读档。快照含 .env 副本,千万别外传;ZIP 迁移包可选 AES-256-GCM 加密。

从安装到「搞崩了也能救回来」

第一部分 · 安装与三种回退入口

  1. 1

    装插件,重启 dsh web

    dsh-undo-savepoint 是 lire-安安(本次实录作者)开源的 MIT 插件,要求 Node.js ≥ 20。按 GitHub 源安装并重启后,它挂载那一刻就先打一份基线快照——你以后在管理器里看到的第一行,就是这条 plugin-mounted 基线。快照覆盖 DSH 配置、profiles 的 cordis.patch.yml 和用户插件目录。

    $dsh plugin --profile web add github:lire1131/dsh-undo-savepoint#master
  2. 2

    认清三条回家的路

    每个会话页头、模式名旁边都有三个按钮:红「撤销」(撤回最近一次改动)、绿「恢复」、灰「快照」(打开快照管理)。喜欢键盘?默认撤销 Ctrl+Alt+Z、恢复 Ctrl+Alt+Y,可在 dsh web 设置里改键,按 Backspace 清除绑定。作者的幻灯还列了第三种入口:直接在对话里对 AI 说一句,插件同样触发回滚。

    dsh web 会话页头,模式标签 Anchored Standard 旁边并排着红「撤销」、绿「恢复」、灰「快照」三个按钮和 Session log 入口
    会话页头的三个入口:撤销 / 恢复 / 快照,永远在手边看原视频 6:36
    dsh web 的设置弹窗:撤销快捷键与恢复快捷键两个输入框显示默认的 Ctrl+Alt+Z 和 Ctrl+Alt+Y 组合键,旁边是快照设置开关
    键盘路线:撤销 Ctrl+Alt+Z、恢复 Ctrl+Alt+Y,设置里可改键看原视频 7:28

第二部分 · 日常回滚与崩溃演习

  1. 3

    打开快照管理,回退到任意版本

    「快照管理」弹窗共七个动作:手动保存、撤销、恢复、刷新、清理过期、导出 / 导入。每一行都标着时间、类型——基线、自动、手动、后悔档——原因(plugin-mounted、config-change、settings-change、before-restore……)、文件数和所属的库;行内操作是「差异」(看这次改动改了什么)、「回退到此版本」、「删除」。默认自动库保留 20 份、后悔档 10 份、手动存档永不自动清理,都能在「快照设置」里改。

    dsh web 里的快照管理弹窗:手动保存、撤销、恢复、刷新、清理过期、导出、导入七个按钮,下方表格列出基线、自动、手动、后悔档四类快照,每行可看差异、回退到此版本或删除
    快照管理:七个动作,每一行都能看差异、回退、删除看原视频 7:00
  2. 4

    桌面撤销管理器:先落后悔档,再回退

    同样的操作有一个原生桌面窗「DSH 撤销管理器」:手动保存、撤销、恢复、回退所选、删除所选、刷新、清理过期、导出、导入——而且 DSH 本体起不来时它照样能读库,这就是作者说的「局外照样救」。点下撤销,先看最顶上:一条新的 before-restore 后悔档已经写好,然后才开始回退,所以「后悔自己的后悔」永远来得及。双击任意行可看差异。

    点击撤销之后的 DSH 撤销管理器:一条 2026-08-15 14:27:02 的 before-restore 后悔档排在 33 条快照最顶上,自动库与手动库并存
    撤销先落一条后悔档,再开始回退看原视频 10:30
  3. 5

    崩溃演习:故意搞崩 DSH,再原样救回

    作者的崩溃演示按键会往 patch 里注入重复的 dsh-vision 加载器 id——DSH 立刻以 TypeError: duplicate loader entry id、退出码 1 告终。但死之前它已经存好手动快照 demo-crash-before 和一份 cordis.patch.yml 备份。同一个窗口里还备着清除注入(安全阀,把坏注入拆掉)、打开撤销管理器、查看 patch 文件三个按钮。撤掉坏改动、清掉注入、重启——实录里的会话原样回来:8 轮 · 133 步,花费与模型设置分毫未动。按键下方也印着提醒:它真的会杀掉正在运行的 DSH 进程,按之前先保存会话。

    undo-savepoint 的崩溃演示按键弹窗:日志里依次是已创建 demo-crash-before 手动快照、cordis.patch.yml.demo-backup 备份文件、注入的重复 dsh-vision id 与强制结束进程,下方是清除注入安全阀和打开撤销管理器按钮
    崩溃演习:先存档、再注入、后强杀,救援按钮常备看原视频 10:18
    回滚并重启之后的 DeepSeek Harness 会话原样恢复,页头仍有红「撤销」绿「恢复」按钮,状态栏还是 8 轮 133 步
    回滚加重启,会话完好如初看原视频 10:58

第三部分 · v0.4.5 的版本时间线

  1. 6

    v0.4.5 把弹窗升级成了版本时间线

    现在的版本用时间线页取代了弹窗:按日期分组的行,标着 AUTO / BASELINE、原因和体积,行内四个动作——对比、恢复、编辑备注/标签、删除;工具栏追加了安全模式(DSH 起不来时用)、诊断(undo_doctor 体检)、清理、对话撤回和 ZIP 导出/导入。从这一代起快照默认脱敏:.env、凭据和 home 级设置会被掩码进本地保险库,ZIP 导出还可选 AES-256-GCM 加密。

    dsh-undo-savepoint v0.4.5 的版本时间线页:按日期分组的 AUTO 与 BASELINE 行(plugin-change、plugin-mounted 等),每行提供对比、恢复、编辑备注·标签、删除操作
    v0.4.5 时间线:对比 / 恢复 / 备注·标签 / 删除看原视频 5:09

另一种后悔药:发言级回退 dsh-rewind

dsh-undo-savepoint 把配置和文件回退到存档点;dsh-rewind(夏桑菊XSJ 开发,GitHub 仓库 XSJUSTC,包名 @xsj/dsh-rewind)则是把对话本身回退到任意一条用户消息,像给 prompt 加了个「撤回发送」。README 写得很直白:每条用户消息的操作行、复制图标旁会出现 ↺ 回退图标;点下去,正在思考/输出的回合立即被打断,这条消息及之后的所有内容在聊天视图里隐藏(如同从未发生),消息文本自动填回输入框——未发送、可编辑;发送按钮左侧会出现「取消回溯」,点它就原样恢复被隐藏的消息。

发送之后,模型只看得到截断后的历史加新消息,被回退的尾巴永远不再进入模型上下文。只有用户消息可回退,助手回复没有回退入口(宿主侧强制校验)。安装:dsh plugin --profile web add github:XSJUSTC/dsh-rewind。

xsj/dsh-rewind 的 GitHub README 功能清单:每条用户消息旁出现回退图标,点击即打断当前回合、在聊天视图与模型上下文里隐藏后续内容、把原文填回输入框且发送前可取消
dsh-rewind README:回退图标、打断、隐藏、可取消看原视频 1:54

别把三家混成一谈:dsh-undo-savepoint(本页)用存档点守护配置与文件、能救崩溃;dsh-rewind 回退单条发言;anionex/dsh-turn-rewind 是第三个独立的社区回合回退插件。下面的集合页把一家家摆在一起比。

常见问题

把回滚交给插件之前,读者最关心的事。

撤销会不会把我刚改好的东西也退回去?

回滚是带留痕的软删除:撤销动作本身也会记成一条后悔档,随时可以再回来。作者幻灯里特意提醒:「恢复最新快照」是空操作——要挑一条内容确实不一样的来回退,确认前先看差异。默认自动库保留最新 20 份、后悔档 10 份、手动存档永不自动清理,三个数都在「快照设置」里。回到过去之后,那之后的活儿得重干。

DSH 已经起不来了,还能回滚吗?

这正是桌面撤销管理器存在的意义:它不依赖 web UI,直接读快照库——作者的演示就是故意把 DSH 搞崩再走回来的。如果崩溃来自坏的 patch 注入,「清除注入」会用自动备份把 cordis.patch.yml 还原;v0.4.5 还加了一键安全模式和 undo_doctor 诊断,专治起不来。

快照会不会把我的 API Key 泄出去?

快照里就是 .env 和配置的副本——作者幻灯原话:密钥别外传。v0.4.x 起默认脱敏:.env、凭据、home 级设置会被掩码,真实值留在本地保险库里;ZIP 导出可选 AES-256-GCM 加密。保险库留在本机,导出的 ZIP 记得加密。

dsh-rewind、dsh-turn-rewind 和 undo-savepoint 是同一个插件吗?

不是,是三个项目。lire1131 的 dsh-undo-savepoint(本页主角)给配置和文件打存档点、能做崩溃救援;XSJUSTC 的 dsh-rewind 把会话回退到任意一条历史用户消息;anionex/dsh-turn-rewind 是第三个独立的社区回合回退插件。集合页里有完整清单,本教程只手把手教 undo-savepoint。

相关攻略

同一张安全网的其他侧面。

来源与署名

全部截图取自插件作者本人的 B 站实录,每张都深链回对应秒数;页面文字为站内原创。安装命令、脱敏与安全模式等事实已与 lire1131/dsh-undo-savepoint、XSJUSTC/dsh-rewind 的 README 互证。

DSH Plugins 是独立的 DeepSeek Harness 插件市场,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。