ssipbss
dsh-savepoint
DSH 存档点 - 装插件前后自动存档、一键恢复,聊天记录不受影响
- Stars
- 0
- Language
- PowerShell
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
🗄️ dsh-savepoint · DSH 存档点
中文 | English
装插件前自动存档,出问题一键恢复,聊天记录永远不受影响。
这是什么?
你以前装 DSH 社区插件的循环:翻车 → 让 AI 修 → 越修越坏 → DSH 打不开 → 只能全卸重装。
dsh-savepoint 把"修复能力"放在 DSH 之外:
- 装插件前后各存一个档(配置文件快照,KB 级),命名「安装XX前」「安装XX后」;
- 出问题后一键恢复——DSH 打得开时用 AI 工具,打不开时双击一个脚本就能还原;
- 聊天记录(
sessions/)绝不恢复、绝不删除,恢复前后哈希比对并写日志; - 恢复前先把当前状态移入隔离区(不删除),误恢复可撤销。
特性
- 装插件前/后各存一个档,命名「安装XX前」「安装XX后」
- 启动基线安全网(每次正常启动自动留一档)
- 三入口恢复:AI 工具 / GUI / 双击脚本
- DSH 打不开也能恢复(独立 PowerShell 脚本,零依赖、不联网)
- 聊天记录保护:绝不恢复、绝不删除,哈希校验留痕
- 恢复前隔离当前状态,误恢复可撤销
snapshot_diff定位肇事改动,可外科手术式回退
快速开始
方式 A:完整体验(推荐)
把 scripts/ 目录整个复制到 %USERPROFILE%\.dsh-snapshots\(即 $DSH_HOME-snapshots),然后在 DSH 会话里让 AI 用 cordis_define 加载 plugin/savepoint.host.js(idPrefix: savep)。
方式 B:只要恢复能力
复制 scripts/ 到任意位置,手动运行:
# 手动存档
.\snapshot.cmd
# 或
powershell -NoProfile -ExecutionPolicy Bypass -File .\snapshot.ps1 -Reason "装 XX 前"
# 一键恢复(交互选择存档,绝不自动就近恢复)
.\restore.cmd
日常用法
装插件前 → snapshot_save(pluginName="xx", phase="before") → 「安装xx前」
装插件后 → snapshot_save(pluginName="xx", phase="after") → 「安装xx后」
出问题了 → snapshot_restore(snapshotId="...") → 一键恢复
(或双击 restore.cmd 手动选档)
目录结构
.dsh-snapshots/
├─ snapshot.cmd / snapshot.ps1 # 手动存档
├─ restore.cmd / restore.ps1 # 一键恢复(交互选档)
├─ config.json # (可选)自定义 dshHome / snapRoot
├─ logs/ # 恢复日志
├─ broken/ # 隔离区(损坏现场,可撤销)
└─ snap-<时间>-<manual|auto>/ # 每个存档
├─ manifest.json # 清单(文件/哈希/原因/时间)
├─ files/ # 配置快照
└─ restore.ps1 / restore.cmd # 该存档自带的恢复脚本(自包含)
工作原理
存档的是 DSH 的关键小文件(KB 级):cordis.patch.yml、package.json、settings.yaml、.credentials.yaml、workspace.json、.agent-presets/ 等。依赖树(node_modules)不复制——依赖损坏时恢复脚本可选执行 pnpm install --force 重建。
恢复脚本是纯 PowerShell,不依赖 DSH / node / pnpm / 网络,DSH 打不开时也能运行。
边界与已知限制
| 限制 | 说明 |
|---|---|
| 自动存档需要插件在运行 | 插件是 DSH 动态插件(会话级):重启后需在新会话重新加载。但已有存档和恢复脚本永远可用。 |
| 聊天记录 | 存在 $DSH_HOME\sessions\,手动全删 .dsh 仍会丢。本插件解决"不重装",不解决"手滑全删"。 |
| 首次使用 | 插件默认从 config.json 或环境变量探测路径;找不到时会在日志里明确报错,不会静默乱存。 |
许可证
MIT © ssipbss
致谢
灵感来自 DSH 社区"装插件翻车→全卸重装"的真实痛点。