v0.3.4 — 宿主崩溃兜底 + 有界交接(R1–R7 回流)
★ 这个 Release 是为
dsh-routing-suite而发的(它install.sh从 Release 装注入器)。
上游独立仓dsh-super-injector保留用于独立发布。
这一版修了什么(逐条带读数)
| # | 修复 | 读数(证据) |
|---|---|---|
| R1 | ★★ 未处理 rejection 常驻兜底(委托方 #1 痛点:宿主反反复复重启) | self-heal.log 里 rejection-shield ×43(43 次启动都装了)· escaped-rejection 仅 1 条,且是故意的探针(zz-escape-probe)
|
| R2 | 异步逃逸回执:把未被 await 的 rejection 降级成工具回执里的警告 + 修法建议
| lib 里 修法:在该工具里 await 所有异步调用。 ×1
|
| R3 | 官方右侧栏的两步式注册(ctx.slots.inject + register({name}) 之间有回调头)
| 旧正则要求紧邻 ⇒ 误判合法插件为坏骨架(实测 dsh-agent-browser 被阻断注入)⇒ 改成在 register({...}) 段内找 name
|
| R4 | slot 白名单全集 51 项(早期硬编码 11 项) | 漏掉右侧栏/主壳/会话头那一大批 ⇒ 照样误判 |
| R5 | ★ bundles 防重护栏(2026-09-08 closedloop 双装配事故)
| 包已列进 dsh.profile.bundles 时跳过 registry 恢复(否则造第二实例 ⇒ duplicate namespace/route 炸整棵 plugin tree)
|
| R6 | ★★ 不是每个 client 入口都要注册 slot | 两种合法例外(空占位 client · 走别的服务挂 UI)被误判为坏骨架 ⇒ 17 次启动都被跳过恢复(最早 2026-09-08 10:34Z)
|
| R7 | ★★ 工具边界有界交接(2026-09-12 二次吊死案底)
| 内层 handoff 只盖住「dispose 旧 fiber → 重建 fiber」,而 import / 取锁 / findEntry 全在网外 ⇒ 任一处无界等 ⇒ 整个工具调用永不返回(宿主活着,会话被自己的 reload 吊死)
|
装法
# 从 Release 装(`routing-suite/install.sh` 走的就是这条)
SPI_VERSION=0.3.4 bash <routing-suite>/install.sh⚠️ 已知边界(诚实):
·lib/不在 git 里(它在.gitignore)⇒ 本 tgz 由scripts/prepare.mjs现构建 ⇒ 含lib/✅
· ★dsh-routing-suite的「路 A(源码构建)」用的是它仓内的injector/那份源码 ——
而那份尚未更新到含 R1–R7 的版本 ⇒ 它仍会拿到旧版(这条已上报)