Skip to content

飞书卡片消息已成功发送(日志显示"发送卡片成功"),但手机端一直显示"思考中",AI 响应永远不更新 #70

Description

@vfeihuang

问题
飞书卡片消息已成功发送(日志显示"发送卡片成功"),但手机端一直显示"思考中",AI 响应永远不更新。

根因:飞书卡片展示流式内容依赖 OpenCode 的 SSE 事件流。当事件流断开后,sendMessagePartsAsync 发起的请求虽然成功,但后续的流式输出数据无法通过断开的连接到达 bridge,卡片永远无法更新。

修复逻辑(两层防护)
第一层:发送前主动检查事件流健康(src/opencode/client.ts + src/handlers/group.ts)
在 GroupHandler.processPrompt 发送异步消息之前,调用 ensureEventStreamActive():

如果事件流是活的 → 直接继续
如果事件流断了 → 主动重置并重连,重连成功再发送消息
这样从源头确保流式输出的通路是通的。

第二层:卡死检测兜底(src/lifecycle/buffer-callback.ts)
万一事件流重连也失败了(或者有其他未知原因导致输出卡死),60 秒无新内容自动将 buffer 标记为 failed,触发卡片更新为"失败"状态,避免用户永远看到"思考中"。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions