DSH Hub
dsh-undo-savepoint cover

lire1131/dsh-undo-savepoint

dsh-undo-savepoint

UIWeb UI191 GitHub stars· updated 2026-10-20

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#master

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-undo-savepoint DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-undo-savepoint.svg)](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 安全管家(撤销 / 回退 / 崩溃自愈)

中文 | English | 更新日志

为 DeepSeek Harness (DSH) 打造的安全管家:改设置自动存档,一键撤销 / 恢复 / 回退到任意版本;主动体检、升级护航、崩溃自愈;DSH 起不来时局外 WebUI / GUI / CLI 依然可用。

管家的做事方式是主动检查,有异常才说话,正常时安静。启动 30 秒后完成第一次体检;崩溃后给出可回退的最后正常快照;检测到 DSH 版本变化时先打升级保险快照再放行。

预览

会话头部:撤销 / 恢复 / 快照 / 对话撤回全部图标化 + 自动快照状态徽章(已存 24 份 · 3 小时前)
WebUI 快照面板:手动保存 / 撤销 / 恢复 / 清理 / 导出导入 / 安全模式,逐条「差异 / 回退到此版本 / 删除」DSH 设置「快照」独立栏目(自动保存 / 保留数量 / 敏感模式 / 插件白名单 / 定时快照)
局外 WebUI:崩溃横幅 + 撤销 / 重做 / 安全模式 / 诊断 / 对话撤回 / 设置,不依赖 DSH 运行(快照对比与设置见局外工具一节)

安全管家

管家职责对应能力
启动健康体检启动 30 秒后自动检查会话目录、容错补丁、快照覆盖与磁盘占用,有异常才告警
崩溃自愈DSH 完全起不来时一键安全模式,只保留本插件保证能启动;崩溃归因给出最后正常快照,一键回退
会话医生undo_scan 扫描会话文件,修复单帧布局违规与 seq 重叠两类损伤,修不了的隔离,绝不动原件
升级护航检测到 DSH 版本变化自动打升级保险快照,升级后首次启动出兼容体检与会话普查报告
快照不泄密.env、凭据、home 级设置进快照自动脱敏,真实值只存本机 vault,导出包零泄露
容错补丁对 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 崩溃根因)与 synthetic-closer seq 重叠(撤销/快照还原后的中断恢复 seq 重叠)可一键修复(原件留 .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 完整性(缺失 / 孤儿)、设置文件健康、快照规模分布。启动侧预检那些会让 DSH 在挂载任何插件之前就崩掉的硬失败:profile 清单 BOM / JSON / 结构、dsh.profile.bundles 逐项可解析、patchReload 取值、link: junction 落点、patch 里重复的 loader id、上次启动未完成。输出 ok / warn / err 结构化报告,可修项标 [fixable],对话里 undo_doctor fix=true、离线 dsh-undo.ps1 doctor -Fix、局外 WebUI 诊断面板的「修复可修项」按钮都能一键修复(改前先落手动快照,修完自动复查)
跨机迁移安全恢复前自动预检缺失插件并明确提示;快照可一键导出 / 导入 ZIP 迁移(见 docs/migration.md)
局外急救DSH 挂了也能用:WebUI + GUI 窗口 + CLI + 桌面快捷方式,时间线 / 回滚 / 对比 / 安全模式 / 诊断一应俱全

基础能力(键盘快捷键、对话指令、自动清理、双模式保存、可配置参数等)见下文与更新日志。

平台支持

v0.4.0 起核心抽取为纯 Node 零依赖模块(lib/core.mjs / lib/zip.mjs),外围按平台分发,Windows / macOS / Linux 三平台可用:

能力WindowsmacOSLinux
配置 / 插件快照、撤销 / 重做✅✅✅
局外 CLI / GUI✅(.bat / .ps1)✅(.command)✅(.sh)
局外 WebUI(undo-server)✅✅✅
文件选择对话框PowerShell 原生osascriptzenity → kdialog(都没有则回退手输)
CI 回归windows-latestmacos-latestubuntu-latest

CI 为三平台矩阵(windows/ubuntu/macos × node[20,22])。ZIP 导出 / 导入由纯 Node 零依赖 lib/zip.mjs 实现(deflate / 存储、CRC32、UTF-8),不引入运行时依赖,与 PowerShell 互操作已双向验证。

…

Related plugins