
lire1131/dsh-undo-savepoint
dsh-undo-savepoint
DSH crash-rescue plugin: undo config & plugin-code changes, secret-safe snapshots, one-click SAFE MODE, plus offline CLI/GUI that work even when DSH won't boot.
Install
npx @deepseek-ai/dsh plugin --profile web add github:lire1131/dsh-undo-savepoint#masterRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-undo-savepoint)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from lire1131/dsh-undo-savepoint, cleaned of badges and images.
dsh-undo-savepoint — DSH 撤销/回退系统
为 DeepSeek Harness (DSH) 打造的撤销/回退系统:装插件、换皮肤、改设置,自动保存即存档;手动保存随时存档;一键撤销 / 恢复 / 回退到任意版本。DSH 启动不了时,还有局外 WebUI / GUI / CLI 兜底。
还在为 DSH 崩溃而苦恼?还在担心小改动带来大灾难?配置与插件代码一键回滚、快照密钥脱敏、一键安全模式——DSH 挂了也能自救。
预览
| 会话头部:撤销 / 恢复 / 快照 / 对话撤回全部图标化 + 自动快照状态徽章(已存 24 份 · 3 小时前) |
|---|
| WebUI 快照面板:手动保存 / 撤销 / 恢复 / 清理 / 导出导入 / 安全模式,逐条「差异 / 回退到此版本 / 删除」 | DSH 设置「快照」独立栏目(自动保存 / 保留数量 / 敏感模式 / 插件白名单 / 定时快照) |
|---|---|
| 局外 WebUI:崩溃横幅 + 撤销 / 重做 / 安全模式 / 诊断 / 对话撤回 / 设置,不依赖 DSH 运行(快照对比与设置见局外工具一节) |
|---|
核心能力
| 能力 | 说明 |
|---|---|
| 配置 + 插件代码一键回滚 | 快照覆盖配置与用户插件代码树,改坏任何一处都能撤销(含 yield* 类纯代码事故);支持 undo / redo / 回退任意版本,WebUI / 对话 / 离线 CLI 三入口 |
| 消息级撤销 | 按 AI 消息(或 60s 批次)记录工作区文件变更,一句话回滚「这条消息改了什么」(恢复原内容 / 删除新建文件);不依赖 git、不碰会话存储;「跟踪工作区目录」可在设置中配置(逗号 / 分号多选,非空时覆盖默认工作目录) |
| 局内对话撤回 | 对话头部「对话撤回」入口 + 消息级撤回面板,在 DSH 面板里即可撤回指定消息批次的文件改动 |
| 密钥脱敏 + 本机 vault | .env / 凭据进快照自动脱敏(结构保留),导出 ZIP 零泄露;真实值存本机 vault,本机回滚完整还原 |
| 一键安全模式 | DSH 完全起不来时,禁用除撤销系统外所有插件保证能启动;自动快照 + 备份配置(profile / home 双级 patch 一并备份恢复,并中和 dsh.profile.bundles 里会导致启动器硬校验失败的条目),一键退出;家目录被重建 / 换机时残留状态自动降级不激活 |
| 崩溃归因 | 上次异常退出时直接给出「最后正常快照」id + 一键回退按钮;按日志签名分类崩溃原因(session-corrupt / bundle-check / patch-tree),横幅给出对应处置建议 |
| 会话文件扫描修复 | undo_scan 扫描 <home>/sessions/**/session.jsonl.zstd:单帧布局违规(8/18 崩溃根因)可一键重编码修复(原件留 .bak + 隔离区副本),无法解码的只隔离不动;DSH 起不来时用 dsh-undo.ps1 scan [--fix] 离线处理(需 Node ≥22.15,Node 20 下降级为提示) |
| 快照时间线(Time Machine) | 快照按日期分组卡片化(备注 / 标签芯片,尊重 prefers-reduced-motion)+ 文件级 diff(新增 / 删除行高亮、目录树导航、逐文件浏览)+ 一键回滚 |
| 快照管理 | 备注 / 标签(undo_note,时间线可直接编辑)、定时快照(间隔制,自动建档 + 保留清理)、孤儿 blob GC(undo_compact,释放磁盘)、ZIP 导出 / 导入(可选 AES-256-GCM 加密,兼容 PowerShell 明文互操作) |
一键诊断 undo_doctor | 检查快照目录可写性、blob 完整性(缺失 / 孤儿)、设置文件健康、快照规模分布,输出 ok / warn / err 结构化报告与修复提示 |
| 跨机迁移安全 | 恢复前自动预检缺失插件并明确提示;快照可一键导出 / 导入 ZIP 迁移(见 docs/migration.md) |
| 局外急救 | DSH 挂了也能用:WebUI + GUI 窗口 + CLI + 桌面快捷方式,时间线 / 回滚 / 对比 / 安全模式 / 诊断一应俱全 |
基础能力(键盘快捷键、对话指令、自动清理、双模式保存、可配置参数等)见下文与更新日志。
平台支持
v0.4.0 起核心抽取为纯 Node 零依赖模块(lib/core.mjs / lib/zip.mjs),外围按平台分发,Windows / macOS / Linux 三平台可用:
| 能力 | Windows | macOS | Linux |
|---|---|---|---|
| 配置 / 插件快照、撤销 / 重做 | ✅ | ✅ | ✅ |
| 局外 CLI / GUI | ✅(.bat / .ps1) | ✅(.command) | ✅(.sh) |
| 局外 WebUI(undo-server) | ✅ | ✅ | ✅ |
| 文件选择对话框 | PowerShell 原生 | osascript | zenity → kdialog(都没有则回退手输) |
| CI 回归 | windows-latest | macos-latest | ubuntu-latest |
CI 为三平台矩阵(
windows/ubuntu/macos × node[20,22])。ZIP 导出 / 导入由纯 Node 零依赖lib/zip.mjs实现(deflate / 存储、CRC32、UTF-8),不引入运行时依赖,与 PowerShell 互操作已双向验证。
Logo / 图标:生成提示词见
docs/logo-prompt.md;WebUI favicon 用内置tools/webui/logo.svg。自定义图标:透明 PNG 存为tools/webui/logo.png,运行node tools/make-ico.mjs tools/webui/logo.png tools/webui/logo.ico生成.ico,下次创建快捷方式时自动启用(回退顺序logo.ico→logo.png→ 系统默认)。
崩溃急救速查(按场景选工具)
…

