kidai-snapshot-guard:DSH 内部的自动快照与回滚插件

前言

DeepSeek Harness(DSH)的理念是「一切皆插件」,日常使用里最高频的操作就是装插件、更新、改设置。风险也在这里:某次改动一旦让 DSH 起不来,你最需要的是「改坏之前的样子」。靠手动在每次改动前复制配置目录,既容易忘,也难保证完整。

kidai-snapshot-guard(纪代快照守护)把这件事自动化了:在 DSH 内部完成快照的「保存 → 确认 → 恢复」闭环,装好即用,不需要你记得做任何事。

这是什么

一句话定位:DSH 内部的自动备份管家——关门前保存、开机后确认、一键回滚。

插件由 NokorinNishikino 维护,许可证 MIT,截至本文写作(2026 年 9 月)版本为 1.3.4。它随 DSH 启动运行,核心工作只有三步:正常关闭前拍全量快照,成功开机后把快照确认为「已验证」,需要时把任意快照恢复回去。

核心功能

关闭前自动保存

每次 DSH 正常关闭前,插件自动保存一份全量快照,内容包括配置、设置和第三方插件目录,滚动保留最新 3 份。也就是说,最近三次「正常关闭时的完整状态」随时可取。

开机确认与 known-good

快照刚生成时处于待确认状态。如果下一次 DSH 成功启动,说明关闭时的配置能正常跑,插件自动把它转为「已验证」(verified),并维护一份固定 id 的 known-good 快照,作为已知良好的回滚基线。

单 zip 备份

任意快照可以一键导出为一个离线 zip,也可以从 zip 导入并恢复。zip 文件本身不依赖 DSH——即使 DSH 起不来,凭这个文件也能把配置恢复回去。

隔离自动恢复

外部管理器的「一次性隔离」如果被打断(启动的 DSH 不是管理器拉起的那一个,即 PID 不匹配),插件会在下次启动时自动还原隔离前的配置,并清除隔离标记。隔离只影响一次启动。

其他能力

  • 启动通知:「纪代备份」页顶部显示启动成功 / 自动恢复提示
  • 快照备注:给任意快照加备注便于分辨,与外部管理器双向同步
  • 兼容读取并恢复 dsh-plugin-guard 的回滚与 dsh-config-manager 的快照
  • 容量配额:在管理页设置快照占用

安装与启用

环境要求 Node >= 22.0.0。插件自身依赖 adm-zip ^0.6.0,peer 依赖 @deepseek-ai/cordis ^4.0.1,随安装一并处理。

安装命令:

dsh plugin --profile desktop add github:NokorinNishikino/kidai-snapshot-guard

安装后重启 DSH 生效。插件装好即用,随 DSH 启动,无需任何操作。

本地开发可以从 kidai-plugin-remote 仓库目录执行安装脚本:

powershell -ExecutionPolicy Bypass -File scripts\install-guard.ps1

卸载:

dsh plugin --profile desktop remove kidai-snapshot-guard

需要手动清理时:从 profiles/desktop/package.json 移除 kidai-snapshot-guard 的依赖与 bundle 声明,再删除 node_modules/kidai-snapshot-guard 目录。

典型用法

1、打开 DSH「设置 → 纪代备份」。这是插件的管理页,可以查看和管理快照、执行导出与导入、设置容量配额。
2、在对话框输入 /kidai-snapshot,查看一份只读摘要。

常见操作对应关系:

  • 保存:等 DSH 正常关闭自动保存,或调用 /api/kidai-snapshot/save 手动保存
  • 回滚:在管理页选择某个快照恢复
  • 长期留存:把快照导出为 zip 存到 DSH 之外,需要时再导入恢复

对集成者:插件在 DSH webServer 上暴露 /api/kidai-snapshot/* 接口,包括:

status  list  save  known-good  delete
export  exports  import  restore
foreign  foreign-restore
settings  quota  meta  notice  note

管理页为 web 客户端实现,注入 @deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-locale、@deepseek-ai/dsh-client-ui-settings 三个模块。

与外部管理器的关系

快照存储在 $DSH_HOME/.kidai-snapshots,守护目录在 $DSH_HOME/guard/,两处与外部管理器 Kidai Plugin Remote 共享,两端看到的是同一批快照,备注也在两端之间双向同步。

需要强调:kidai-snapshot-guard 完全独立,不装 Kidai Plugin Remote 也照样能自动快照、导出、恢复。外部管理器只是可选的补充,提供在 DSH 之外操作这批快照的入口。

适用场景与注意

适合谁:

  • 经常安装、更新插件或调整配置,担心某次改动让 DSH 起不来的人
  • 不想每次改动前手动备份,希望有一个无人值守的自动快照机制
  • 需要在 DSH 完全起不来时仍有恢复手段(导出的 zip 或外部管理器)

使用前注意:

1、插件以当前 dsh 进程的权限运行,任何第三方插件安装前都应检查源码与许可证。本插件源码在 GitHub 公开,许可证 MIT,可自行审阅。
2、快照滚动保留最新 3 份,更早的会被覆盖。想要长期留存的快照,导出为 zip 单独保存,或加备注便于辨认。
3、快照为全量内容(配置 + 设置 + 第三方插件目录),占用空间可在管理页通过容量配额控制。

小结

kidai-snapshot-guard 解决的是一个具体问题:DSH 的配置改动把 DSH 自己改坏了怎么办。它不改变你的使用习惯,只是在每次正常关闭时默默留一份快照,开机成功后确认,出问题时给你一条明确的回滚路径。

  • 社区目录页:https://www.skillhub.cn/plugins/NokorinNishikino/kidai-snapshot-guard (社区维护的独立目录,与 DeepSeek、幻方无官方从属关系)
  • GitHub 仓库:https://github.com/NokorinNishikino/kidai-snapshot-guard
羽毛球分组比赛记分
小程序二维码

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

Xiaoye