Skip to content

Releases: xiaoyuyu6420/dsh-backup

v0.13.4 — 元数据版:npm 描述与关键词对齐检索用词(无行为变更)

Choose a tag to compare

@xiaoyuyu6420 xiaoyuyu6420 released this 10 Oct 00:57
608ed26

0.13.4 — 元数据版(无代码与行为变更)

本版只改「被发现的方式」,不改功能:npm 描述与关键词对齐了用户实际会搜的词,方便「升级翻车、搬家换机」场景的人找到本插件。

变更

  • npm 描述重写:把「备份、恢复、迁移」提到句首,并点出覆盖对象(会话 / 设置 / 插件 / MCP / 技能);
  • npm 关键词 14 → 26:新增 migration 迁移 换机 mcp skills 技能 sessions 会话 workspace 工作区 cross-machine vault;
  • README 双语变更日志各加一条;lib/client.js 重建(内嵌版本号)。

与 0.13.3 的差异

功能、归档格式、设置项、RPC 完全一致——停留在 0.13.3 与升级到 0.13.4 在行为上没有任何区别;升级与否只影响你在 npm 搜索里能不能搜到。

验证

  • node scripts/smoke.mjs → 337/337
  • node scripts/smoke-client.mjs → 29/29
  • node scripts/smoke-settings.mjs → 47/47
  • 发布流水线在 tag 上重跑全部冒烟后发布(run 成功)

安装 / 升级

dsh plugin --profile web add @xiaoyuyu6420/dsh-backup
# 已装:dsh plugin --profile web update --latest @xiaoyuyu6420/dsh-backup

v0.13.3 — 恢复链路三连修 + 更新/预检两修(#112/#119/#117/#115/#113)

Choose a tag to compare

@xiaoyuyu6420 xiaoyuyu6420 released this 03 Oct 19:16
a71bde4

v0.13.3 — 三个真实用户报障的恢复/观测修复 + 两个自建缺陷修复

全部在四条宿主列车(0.1.5-rc.3 / 0.1.7-rc.2 / 0.2.0-rc.2 / 0.2.1-alpha.1)真机 e2e 各 41/41 复验;smoke 337 / settings 47 / client 29。

修复

  1. #112(数据可用性级)含附件的归档恢复全链路不可用(@zevs281 报告):DSH 附件库用硬链接(tar 记为 h 条目),而恢复校验器只放行 -/d → 0.13.2 及更早对这类归档的完整恢复 / dry-run / 分类型合并 / doctor 修复一律拒绝。现在:条目与目标都在备份根内的硬链接放行(符号链接、设备仍拒)。
  2. #119 大归档恢复被误拒(@Yoshino-JF 报告):归档清单超过宿主 subprocess 的 spill 上限时宿主会丢弃 spill 文件、只留 8 KB 尾窗,校验器把"断在文件名中间的碎片"当成不安全条目 → 整包拒绝(备份成功、verify 报完整、只在恢复时炸)。现在:清单走原始流逐行校验(无上限,发现违规立即终止)。
  3. #117 doctor/migrate 对 v4 会话日志失明(@xiuwufangoc-design 报告):宿主 0.1.7 起会话格式为 v4,而文件名与校准代写死到第 0 代/v3 → 体检与迁移预检一份都扫不到。现在:按宿主同源形态匹配文件名、校准代推进到 v4、更新代只提示。
  4. #115 一键更新跨不过 minor:pnpm update 只在声明范围内升级,跨 minor 停在旧版且回执谎报成功。现在:update --latest + 跑完读回 profile 内真实版本核对。
  5. #113 迁移预检误报(@zevs281 报告):未知 source.kind 从"判打不开"降级为提示,名单对齐宿主权威集合。

兼容性

  • peers 不变:0.2.1-alpha.1 天然落在 ^0.2.0-rc.1 内(下一 peer 边界是 0.3.0)。
  • 会话格式代校准 v4(该列车无 session-format-v4-to-v5 包、文件名正则未变)。
  • 归档格式、设置项、RPC 均向后兼容(旧归档可读、旧版遇新归档安全降级)。

升级

dsh plugin --profile web update --latest @xiaoyuyu6420/dsh-backup

(0.13.0+ 也可以直接用面板「插件更新」卡——0.13.3 起它自己就能跨 minor 了。)

English summary: three fixes from real user reports (hard-link restore #112, spill-truncation false rejection #119, v4 session blindness #117) plus two self-found defects (one-click update crossing minors #115, migration precheck false alarms #113); re-verified on four host trains with e2e 41/41 each.

v0.13.2 — DSH 0.2.0 列车适配 + 调度器卡死修复 + review P2 债

Choose a tag to compare

@xiaoyuyu6420 xiaoyuyu6420 released this 29 Sep 03:55
0669700

自 0.13.1 以来的全部改动。

适配

  • DSH 0.2.0 列车(#106):peers/engines 追加 ^0.2.0-rc.1。⚠️ 0.2.0 起宿主新增安装期兼容闸门——peer 不匹配会被直接拒绝安装(本版起不再遇到)。
  • 修复 0.1.7 起失效的设置表单(#106):宿主在 0.1.7 移除了 ctx.settings.register,改从插件条目 Config schema 派生表单、且只认标了 volatile 的字段。本插件导出 Config 并逐字段标注(运行时探测兼容老 schemastery),设置卡片在 0.1.7 / 0.2.0 上恢复可读可写。

修复

  • 调度器不再拖死宿主(#104,修 #103):备份收尾与启动补跑不再让宿主启动时卡死。
  • 全量 review 的 P2 债清偿(#107):e2e 守卫恒假、救援页归档文件名注入面、升级快照过滤、merge 恢复的依赖重装失败处理、死码与文档同步。

验证

  • compat 真机 e2e:宿主 0.1.7-rc.2 37/37、0.2.0-rc.1 37/37
  • smoke 312/312、settings 47/47、client 29/29
  • CI 双矩阵(Node 20 / 22)绿

升级

dsh plugin --profile web add @xiaoyuyu6420/dsh-backup@0.13.2

或面板「插件更新」卡片一键更新。

v0.13.1 — 0.1.6+ 面板适配 + GitHub Token 按钮修复

Choose a tag to compare

@xiaoyuyu6420 xiaoyuyu6420 released this 25 Sep 16:11
2570e16

修复

  • 0.1.6+ 宿主上面板标签静默消失(#94,感谢 @jackovibe):宿主 0.1.6 起要求客户端 Remote 贡献的 strict codec 带 create() 惰性工厂,缺失时 $mount 在校验阶段抛错且只有 console 日志,标签页永不注册。现同时提供 schema(0.1.5 读)与 create()(0.1.6+ 读);$mount 改为声明式等待 remote 服务就绪;新增降级标签页,万一挂载失败会给出可见提示与命令指路,不再静默消失。
  • 「GitHub Token」保存按钮报错(#97,感谢 @CheeseTJ):客户端 panel 代理漏接 setGithubToken(0.12.0 加入宿主半时即漏,因当时面板无入口而潜伏两版)。已补接,并新增「panel 面必须与贡献 descriptors 一一对应」的防漏断言。

兼容性

peers/engines 追加 ^0.1.6-alpha.1 || ^0.1.7-alpha.1;实机验证:0.1.6-alpha.2 / 0.1.7-alpha.2 / 0.1.7-rc.1 / 0.1.7-rc.2 / 0.1.5-rc.2(e2e 37/37)全部通过。

发布前实测

smoke 283/283 · settings 47/47 · client 29/29 · 真宿主 e2e 37/37。

v0.13.0 — 更新感知 + 一键更新

Choose a tag to compare

@xiaoyuyu6420 xiaoyuyu6420 released this 21 Sep 09:22
c7ac782

新增

  • 更新感知:/backup check-update + 面板「插件更新」卡——查 npm 最新版(8s 超时、断网静默降级),发现新版出现「更新到 x.y.z」按钮;设置项 updateCheck(默认关)开启后打开面板自动静默检查
  • 一键更新:/backup update [--profile 名]——更新前自动留 dsh-pre-upgrade- 升级前快照(失败可 /backup restore 回滚),再走官方 dsh plugin update(pnpm 语义),完成提示重启 dsh web 生效

说明

宿主在启动时结算插件 Loader 树、插件是 profile 的 pnpm 依赖——运行中热替换在宿主现行架构下不可行,一键更新 + 重启是此架构下的最佳形态。

发布前实测

smoke 283/283 · settings 47/47 · client 25/25 · 真宿主 e2e-host 37/37 · registry 更新检查路径实弹通过。

v0.12.2 — 修复 Windows 盘符根布局备份/恢复/救援全链路(#88)

Choose a tag to compare

@xiaoyuyu6420 xiaoyuyu6420 released this 21 Sep 06:29
f7f1e2d

修复 #88(感谢 @Liuyeyuyangy0 出色的报告):

  • 盘符根退化:DSH_HOME 直接挂在盘符根(如 D:\dsh_data)时,求父目录的字符串截取退化为裸盘符 D:,tar -C D: 在 bsdtar/GNU tar 下必然失败。备份、分类型恢复、整包恢复、doctor 定点修复与 rescue 救援通道共 7 处 tar -C 统一改传补过分隔符的父目录
  • 尾斜杠相邻 bug:paths() 对 DSH_HOME 补上与 HOME 一致的尾斜杠归一化(尾斜杠曾让 tar 位置参数变空串、产出 0 字节坏包)
  • 失败不再静默:tar 失败路径删除空壳归档再抛错——此前 29 字节空包会被面板当正常备份列出

回归:smoke 新增场景 28(四种路径布局断言 + 尾斜杠真实备份 e2e),全套 274/274 · 45/45 · 23/23。归档格式、设置项、RPC 均不变,旧版可正常升级。

v0.12.1 — 修复 client bundle 顶层 var module/exports 泄漏(#85)

Choose a tag to compare

@xiaoyuyu6420 xiaoyuyu6420 released this 17 Sep 09:02
e2b6dc9
  • 修复 client bundle 顶层 var module / var exports 泄漏为全局变量(#85,感谢 @geyonder 报告):CJS shim 移入 __ModuleLoader__.load factory 体内,不再创建 window.module——此前会把 Monaco 的 AMD loader(dsh-vscode-mode 等)误判成 Node 环境并破坏同页插件。
  • 冒烟测试新增经典脚本全局泄漏回归断言(vm.runInContext)。
  • 纯 client 半区修复,node 侧行为与归档格式不变。

v0.12.0 — 迁移预检 + 凭据哨兵 + GitHub token 面板直配

Choose a tag to compare

@xiaoyuyu6420 xiaoyuyu6420 released this 17 Sep 09:02
  • /backup migrate-check 迁移预检:升级前静态扫描全部代会话日志(v0/v1/v2/v3),预测哪些会话升完会打不开、挂在哪条规则,并探测文件系统硬链接支持。
  • 凭据哨兵:旧扁平布局的 .credentials.yaml 被宿主原子替换前,先自动存底 vault。
  • GitHub token 面板直配:设置面板直接粘贴保存(0600,不进归档、不进 GitHub 同步),优先于环境变量。
  • 新增 engines.dsh 声明(插件市场兼容卡片读取)。

v0.11.3 — 适配 dsh 0.1.5 列车

Choose a tag to compare

@xiaoyuyu6420 xiaoyuyu6420 released this 17 Sep 09:02
  • peerDependencies 追加 ^0.1.5-rc.1(0.11.2 在 0.1.5 宿主上会报 peer 警告)。
  • 兼容实测:宿主 0.1.5-rc.2 真机 e2e 32/32;跨列车原地升级 e2e 14/14。

v0.11.2 — doctor 行级 SessionHeader 校验对齐宿主

Choose a tag to compare

@xiaoyuyu6420 xiaoyuyu6420 released this 08 Sep 01:06
ee904e3

闭环 0.11.0 已知遗留(PR #74)

0.11.0 Release Notes 里记的已知遗留:doctor 行级 SessionHeader 校验弱于宿主 isHeaderLine。本版闭环。

修复

  • 行级校验对齐宿主完整语义(以 0.1.2-rc.1 为准——它是 0.1.1-rc.2 的严格超集):
    • version: number、createdAt / delegationDepth 非负安全整数三连(含 -0 拒绝)
    • seedLength 可选分支、origin 枚举(undefined | "subagent")、agentPreset 类型
    • 退役字段 sandboxMode / approvalPolicy(Object.hasOwn,对齐宿主读端 fromHeaderLine 拒绝)
  • 此前宿主拒载的 header(如字符串 createdAt、缺 delegationDepth)会被 doctor 误报健康——现在如实检出并可从备份定点修复
  • lib/index.js 与 rescue/rescue.mjs(进程外救援台)两份实现逐字同步

验证

  • 静态证明不误判:宿主写端 toHeaderLine 全部产出形态均通过新检查
  • 独立复核:对照双列车宿主编译产物逐字段审计,结论 ALIGN;复核抓出的测试盲区(id/agentPreset 分支)已补
  • 自查修复 snippet(JSON.stringify(undefined)) 崩溃点(缺 type 字段场景),已加回归锁
套件 结果
smoke(新增场景 21:11 种坏 header + 健康对照 + 修复往返) 243/243 ✅
settings / client 45/45、20/20 ✅
e2e-host 0.1.1-rc.2 / 0.1.2-rc.1 32/32、32/32 ✅
0.11.1(npm 正式版)→ 0.11.2 原地升级 14/14 ✅
跨列车救援升级(rc.2 世界 → rc.1 宿主) 14/14 ✅

升级方式

dsh plugin --profile web add @xiaoyuyu6420/dsh-backup@0.11.2

直接更新即可,无需手动迁移。