Skip to content

0.3.2 — turn/start abort 后台复盘不再带崩宿主(#7)

Latest

Choose a tag to compare

@weibaohui weibaohui released this 07 Nov 08:31

修复

turn/start 前台打断后台复盘时,agents.create 收到的父 signal 会在 dsh 内部留下一条未接管的 promise 链,以同一个 AbortError reject 后成为进程级 unhandledRejection,被宿主当 fatal load failure 直接 exit(1)(表现为整页跳安全模式)。

  • agents.create 不再传父 signal:abort 改由 create 后登记的 onAbort → agent.cancel({kind:'parent'}) 传导;abort 落在 create 期间(issue 的一两秒窗口)由 signal.aborted 检查当场补 cancel,复盘安静让位,对外行为不变。被打断的 create 会完整跑完(约 1s),换宿主进程不被带崩。
  • notifySourceSession 挂住 session.append 的异步 rejection:dsh 的 Session.append 返回 promise,会话句柄已关闭时原同步 try/catch 接不住,走同一条致命路径;现在降级为 warn。

回归测试

  • create 期间 abort 的时序(断言不传 signal、agent 被当场 cancel、零 unhandledRejection canary)
  • session.append 异步 reject 降级为 warn(零 unhandledRejection canary)

node --test:100 passed / 0 failed。

Full Changelog: v0.3.1...v0.3.2