Skip to content

Bug: 飞书消息被接收但未触发会话处理流程 #84

Description

@EdwQ

Bug: 飞书消息被接收但未触发会话处理流程

描述

在使用 opencode-feishu 插件时,飞书消息被成功接收,但 AI 没有回复。日志显示消息被接收后,没有触发 session.promptsession.processor 调用。

环境信息

  • opencode-feishu 版本: 1.10.10
  • opencode 版本: 1.15.13
  • 操作系统: macOS (Darwin)
  • 插件配置: 使用默认配置,dedupTtl: 600000, nudge.enabled: true

复现步骤

  1. 配置 opencode-feishu 插件并启动 opencode
  2. 在飞书中向机器人发送消息(例如 "hi")
  3. 观察日志

预期行为

消息被接收后,应该触发:

  • session.prompt 调用
  • session.processor 调用
  • llm 调用
  • AI 回复消息

实际行为

日志显示:

  1. ✅ 消息被接收([feishu] 收到用户消息
  2. baseline captured
  3. chat.message 到达
  4. 没有 session.prompt 调用
  5. 没有 session.processor 调用
  6. 没有 llm 调用
  7. 没有 AI 回复

相关日志片段

INFO  2026-06-08T07:08:49 +1ms service=opencode-feishu sessionKey=feishu-p2p-ou_9df8ebcedbef08e059404e6cff874637 sessionId=ses_159f634c3ffeUahnPhU3Z7A0A9 chatType=p2p senderId=ou_9df8ebcedbef08e059404e6cff874637 messageType=text shouldReply=true content=hi parts=[{"type":"text","text":"hi"}] [feishu] 收到用户消息
INFO  2026-06-08T07:08:50 +1377ms service=opencode-feishu sessionKey=feishu-p2p-ou_9df8ebcedbef08e059404e6cff874637 sessionId=ses_159f634c3ffeUahnPhU3Z7A0A9 fetchSuccess=true hasBaseline=true textLen=46 reasoningLen=0 [feishu] baseline captured
INFO  2026-06-08T07:08:50 +5ms service=opencode-feishu sessionId=ses_159f634c3ffeUahnPhU3Z7A0A9 agent=default model=unknown [feishu] chat.message 到达
INFO  2026-06-08T07:08:50 +1ms service=bus type=message.updated publishing
INFO  2026-06-08T07:08:50 +1ms service=bus type=message.part.updated publishing
INFO  2026-06-08T07:08:50 +1ms service=bus type=session.updated publishing
# 之后没有任何关于该会话的 session.prompt 或 session.processor 调用

注意:在消息被接收后约 7 分钟,系统在处理另一个不同的会话,完全跳过了飞书会话的处理流程。

已尝试的解决方案

  1. ✅ 发送 /new 命令创建新会话 - 无效
  2. ❓ 重启 opencode - 待测试
  3. ❓ 清除会话数据库 - 待测试

可能原因

  1. 插件内部状态机异常,卡在某个中间状态
  2. 消息去重机制误判(虽然不太可能,因为这是新消息)
  3. 会话锁死或阻塞

影响

飞书机器人完全无法响应用户消息,导致无法使用。

附加信息

  • 插件初始化正常,WebSocket 连接成功
  • 第一次消息(在 /new 之后)可以正常处理并回复
  • 问题出现在后续的每条消息上

建议的修复方向

  1. 检查插件的消息处理队列和状态管理
  2. 验证 session.prompt 触发逻辑
  3. 检查是否有会话锁或阻塞机制导致消息被丢弃

优先级: High - 影响核心功能使用

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