Skip to content

v0.1.2 — fix: showToast 挂死插件初始化导致 opencode 无法启动

Choose a tag to compare

@jkrandom-sudo jkrandom-sudo released this 08 Aug 11:26
· 35 commits to main since this release
5030e2f

Fixes

  • showToast 不再可能挂死插件初始化:无 TUI 附加时(headless opencode run,或 bootstrap 期间 TUI 尚未连接),/tui showToast 端点永不响应;此前 PeersPlugin 初始化在名称冲突分支 await 该 toast,导致插件 init 挂起 → opencode 整个 bootstrap 卡死 —— 只要另一个存活实例占用了当前目录 basename 作为 peer 名(如一个常驻 home 目录实例),在该目录下 opencode 完全无法打开
    • feedback.showToast:SDK 调用与 2s(unref'd)超时竞速,超时/无 client.tui 时静默降级。
    • init 时的改名 toast 改为 fire-and-forget,插件初始化不再阻塞于 UX 反馈。

Tests

  • 新增 2 个用例:TUI 端点永不 resolve 的挂死防护、client.tui 缺失时的 no-op。

验证结论

  • npm test:44/44 全绿。
  • 真实 opencode E2E:存活实例注册 peer 名 wangshuai 后,修复前新实例在 /Users/wangshuai bootstrap 卡死(25s 无任何输出),修复后完整启动(peers started name=wangshuai-2,TUI 正常渲染,opencode run 完整跑通)。

Full Changelog: v0.1.1...v0.1.2