OpenCode 执行器: 未识别的 `message.part.delta` 事件会导致警告和乱码文本
作者: Jack47创建于 2026年3月13日更新于 2026年7月9日
□ 问题
当使用最近版本的 OpenCode 执行器( sst/ opencode) 时, 流出时会反复发出以下警告 :
未知的 OpenCode SDK 事件类型 `message.part.delta' : {"sessionID":"ss ...","messageID":"msg ","partID":"prt ","field":"text","delta":"用户指"}两个用户可见的问题:
- 在每一次通信响应中,VK信息面板中的警告垃圾邮件**
- Garbled 字符——作为系统电文提供的JSON活口( " delta " 字段含有Unicode文本),生成mojibake
□ 根源
OpenCode添加了"message.part.delta"作为流线优化([來源請求] (https://GitHub.com/st/opencode/blob/dev/packages/opencode/src/session/message-v2.ts)). 它不在每个文本块上发送完整的 " Part " 对象(`message.part.updated'),而是发送轻量级三角洲:
部分更新: BusEvent.define ("message.part.update", z.obobject ({ part: Part })
PartDelta: BusEvent.define ("message.part.delta"), z.obobject ({
会话ID,消息ID,partID,
字段: z. string (,),
三角形: z. string (,),
(e))在 " crates/executers/src/executers/opencode/types.rs " 中, " SdkEvent " 承认message.part.updated ' ,但不承认message.part.delta'。 未经识别的事件会演变为`未知',“使-logs.rs'变成一个可见的系统信息(~309行)。
□ 建议修补
- 在
类型.rs'中将MessagePartDelta'改为`SdkEvent' - 在 " 正常化 -- -- logs.rs " 中处理 -- -- 要么将三角洲适用于流出文本(类似于 " handle -- -- part -- -- update " ),要么在 " message.part.update " 仍与流出文本同时发送时默默忽略。
□ 环境
- 气氛-坎班:v0.1.29
- OpenCode: 最新的 dev分行
- 平台:macOS arm64
内容来源: BloopAI/vibe-kanban