跳到主内容

dsh-undo-plugin 使用指南

为 DSH 提供撤销/回退系统:自动快照配置与插件代码,WebUI/对话/离线工具三入口一键撤销,DSH 起不来时还有安全模式与 GUI 兜底。

本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。

本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。

快速上手

dsh-undo-plugin

— 源: plugin_wiki.wiki_content

安装与验证

dsh plugin --profile web add github:lire1131/dsh-undo-plugin

复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。

— 源: plugins.install

关键要点

  • 配置目录:默认 $DSH_HOME/profiles/<当前 profile>(DSH_HOME 默认 ~/.dsh;此前硬编码 web——非 web profile 下快照读错、监听错、恢复写错位置);
  • 快照仓库:默认 <快照根>/<当前 profile>/{auto,manual}(按 profile 隔离);作用域目录不存在而旧版平铺目录存在时自动回退平铺,旧快照不会"隐身";
  • 归属标识:快照 manifest 记录 profile 字段,undo_list 显示当前 profile。
    • id: dsh-undo-savepoint
  • 撤销:头部「撤销」按钮 / Ctrl+Alt+Z / 对 AI 说"撤销上一步"。

— 源: plugin_wiki.readme_zh (fallback readme_raw)

常见问题

装完插件没看到头部按钮?

装完需要重启 DSH 才进入稳态。默认装到 web profile,请确认命令行带的是 dsh plugin --profile web add ...。多 profile 机器上若用其他 profile,需要把 --profile 改成对应名字,否则插件会写到 web profile 的快照库。

撤销会把当前改动丢了吗?

不会。每次撤销/回退前都会先把当前状态保存成「后悔档」(pre-restore),所以即便撤销错了还可以用 redo 恢复回去;只有 redo 被新的真实改动消化后才会被自动清理。

快照会包含密钥吗?导出 ZIP 安全吗?

默认敏感模式是「脱敏」:.env / .credentials.yaml 进快照时值被替换成占位符,真实值存本机 vault(仅本机回滚时还原)。导出 ZIP 在脱敏模式下不含真实密钥;如果切到「明文」模式或导的是旧快照,导出文件会带真值并打显眼的告警。

DSH 完全起不来了还能用吗?

能。安装目录的 tools\ 下有离线 CLI(dsh-undo-savepoint.ps1)和 GUI 窗口(dsh-undo-savepoint-gui.ps1),即便 DSH 进程不在也能用。最极端情况下可先开「安全模式」只保留撤销插件,再重启 DSH 一定起得来。

跨机迁移快照要做什么?

在 A 机的快照面板点「导出」拿到 ZIP;先在 B 机装齐 A 用过的插件,再导入 ZIP。恢复时插件会做跨机预检,缺插件会明告,未安装的插件目录不会被写入。

撤销涉及插件代码改动要不要重启?

需要。撤销/回退触及 cordis.patch.yml、profile/package.json 或插件代码时,报告里会出现「重启 DSH 后生效」的提示;纯 .env 或配置值变更一般不需要重启。

自动快照会不会无限堆积?

不会。设置里可配自动档保留数量(默认 20 份)和后悔档保留数量(默认 10 份),超过上限会自动清理;手动保存的快照永不自动清除。

安装命令的 #master 要不要带?

仓库当前安装命令是 dsh plugin --profile web add github:lire1131/dsh-undo-plugin,DSH 会拉默认分支。若你想锁版本,可显式加 #master 或 tag。

— 源: plugin_wiki.faq_json

兼容性

  • DSH: >=0.0.1(peer: @deepseek-ai/dsh-tools)
  • Node: >=20.0.0
  • Platforms: Windows, macOS, Linux

— 源: plugin_wiki.compatibility_json

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则