Repository navigation
v0.20.1
v0.20.1 — 2026-10-10
- 在 DSH 0.2.1 系宿主上派发不再失效:宿主把子代理启动接口换了名字后,新宿主上任何派发都会直接失败(报
startContinuable is not a function);本版把全部派发入口收口到同一处兼容层 —— 新宿主走新接口、旧宿主自动回退旧接口,两者都没有时明确报错,不再静默失败。 - 兼容性结论从此必须验「派得出去」:新宿主上「装得上、起得来」不等于可用;宿主兼容判定固定为安装 / 启动 / 派发可用三个维度,缺一不得判定兼容。
- 本版这样验证:用与用户相同的安装包在干净环境里装上后实测派发 —— 新宿主与旧宿主各成功派发一次并拿到真实子代理标识。原生 Windows 真机门禁已在本版候选包上执行,覆盖安装 / 启动 / REST 层(不含「派发可用」维度);原生 macOS 真机门禁本版未执行,如实标注为「未验证」,不得读作「已通过」。
- 配置与行为零变化:宿主兼容声明范围、设置项与看板行为均未改动;从 v0.20.0 升级无需任何手工动作。
安装 / 升级
dsh plugin --profile <name> add dsh-graph@0.20.1从 v0.20.0 升级无需任何手工动作:本版只改派发入口的宿主兼容适配;宿主兼容声明范围(engines.dsh 与 peerDependencies["@deepseek-ai/dsh-settings"] 同为 >=0.1.5-rc.2 <0.2.2-0)、设置项与数据格式均未改动。
验证与产物
- Windows 真机门禁已按宿主代际覆盖(红线 1):第 1 轮候选包轮(回填前候选包,宿主 DSH
0.2.0-rc.2)+ 第 2 轮闭环轮(当轮发布候选,宿主 DSH0.2.1-alpha.2,经--dsh显式锁定)+ 第 3 轮终轮(终态发布产物,宿主 DSH0.2.1-alpha.2)—— 三轮 T1–T5 均通过 15 / 失败 0 / 告警 1、T3 看板文件系统生命周期均 32/32 步(唯一告警均为发布包内无core/*.ts的台账提示,设计内)⇒0.2.0-rc.2与0.2.1-alpha.2两个宿主代际均已覆盖。第 3 轮的被测产物即终态发布产物(sha25644dc4473…,见下「发布产物」)⇒ 「被测产物 == 发布产物」闭环成立。逐字报告见docs/platform-gate.md§7.9。⚠️ 该结论只覆盖安装 / 启动 / REST 层,不覆盖「派发可用」维度(T1–T5 不含派发):派发可用维度本版在 Linux/WSL2 隔离实例上验证(见下一条),Windows 未经真机验证 —— 不得读作 Windows 三维度齐全。原生 macOS 本版未执行真机门禁 ⇒ 不得读出「已通过」,两份 README 的平台状态表已按「本版未验证」如实标注(最近一次 macOS 真机结论覆盖 v0.19.8 及更早的产品代码,不能替代本版)。 - 派发可用维度(本版验证核心):按用户安装方式(本地安装包,即本节所列发布产物)在隔离实例中安装后实测派发 —— 新宿主(
startActivation形态,DSH0.2.1-alpha.2)与旧宿主(startContinuable形态)各自成功派发一次并拿到真实子代理标识(childId),即覆盖docs/release-handbook.md§5.1 的三维度口径(安装 / 启动 / 派发可用);本版正是该口径的首次完整执行(v0.20.0判定当时只覆盖前两维,已如实留痕)。 - 发布产物:
dsh-graph-0.20.1.tgz— sha25644dc4473940d41a7f1141e7b9b96f1e89e49788c7f070a818c8913a5e716f6ee,sha19c3762046271b36021e81bb376ba93fd8346d3dc,1,437,812 字节,共 43 个成员、包内不含docs/(docs/成员数 0),包内package.json的version与包内常量PLUGIN_VERSION均为0.20.1;包内README.md与提交源码dsh-graph-host/README.md逐字节相同(双方 sha256490686f7…),包内index.js仍为d24c5e1f…b213(产品代码零变化)。该指纹来自隔离 worktree 的独立构建路径(.worktrees/g-471-att-04内bash scripts/build.sh+dist/内npm pack),同一构建树内两次重复打包 sha256 逐字一致;发布时由负责人在 tag 树上重建重打并逐字比对(见发布清单 §5)。 - 被测产物与发布产物的对齐(跨轮口径):第 1 轮(回填前候选,sha256
9b3e3e37…,1437282 B)与第 2 轮(当轮发布产物,sha25694459a16…,1437660 B)的产物均已另存于tmp/uat-v0201/(round1-/round2-归档);自第 2 轮起被测产物即当轮发布产物。第 3 轮把包内 README 平台行改为按宿主代际陈述的跨轮稳定措辞后重建重打,得上一条所列终态发布产物(sha25644dc4473…):新包相对第 2 轮包逐文件差异实拍 = 仅README.md(两处 hunk52c52/294c294)、其余 42/43 逐字节相同,产品代码 / 客户端 bundle /prompts/diagrams全部逐字节相同(见docs/platform-gate.md§7.9)。第 3 轮(终轮)真机门禁已于 2026-10-10 PASS(宿主0.2.1-alpha.2,经--dsh显式锁定;T1–T5 = 15/0/1、T3 32/32 步)⇒ 终态发布产物的「被测产物 == 发布产物」闭环成立;其后docs/回填不入包 ⇒ 指纹不再变化(第 3 轮即为终轮,不再触发第 4 轮)。 - 发布记录:
docs/release-checklist-v0.20.1.md(含版本一致性、夹具复冻、独立构建路径对账、自证闸门与「待负责人执行」清单)。 - 可复现性:同一构建树内重复
npm pack得同一 sha256(逐字节可复现);跨树可复现性已预演(att-005 在.worktrees/g-471-att-05内重建重打,得与发布产物逐字节相同的包 —— 两树仅docs/差异,见发布清单 §5),发布时再由 tag 树重建的 sha256 做最终确认。注意:dist/内若残留上一次打包的.tgz,会被当作普通文件一起打进新包 ⇒ 指纹改变,打包后务必移除dist/*.tgz(tarball 另存tmp/)。