Bug type
Behavior bug (incorrect output/state without crash)
Summary
When a user sends a message inside a Feishu thread in a P2P (direct message) chat, the bot's reply is sent outside the thread as a standalone message, instead of replying within the thread.
This regression was introduced by #33789, which fixed group reply targeting (#32980) but inadvertently broke P2P thread replies by gating all thread-aware logic behind isGroup checks.
Steps to reproduce
- Open a P2P (single) chat with the bot in Feishu
- Create a thread on any message
- Send a message inside the thread
- Observe: bot replies outside the thread as a new message in the main chat
Expected behavior
Bot should reply inside the thread, keeping the conversation within the thread context.
Actual behavior
Three places in extensions/feishu/src/bot.ts hardcode P2P to skip thread-aware reply logic:
replyInThread forced to false for P2P — Feishu API never receives reply_in_thread: true
replyTargetMessageId ignores root_id for P2P — reply targets the triggering message instead of the thread root
skipReplyToInMessages: !isGroup — P2P always skips reply-to, so the send layer uses im.message.create (new message) instead of im.message.reply (thread reply)
Per the Feishu API docs, thread_id indicates a thread message while root_id alone indicates a quote reply. The fix uses this
distinction to handle P2P threads correctly without affecting group behavior.
OpenClaw version
2026.3.3
Operating system
macOS 15.4
Install method
No response
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
No response
Bug type
Behavior bug (incorrect output/state without crash)
Summary
When a user sends a message inside a Feishu thread in a P2P (direct message) chat, the bot's reply is sent outside the thread as a standalone message, instead of replying within the thread.
This regression was introduced by #33789, which fixed group reply targeting (#32980) but inadvertently broke P2P thread replies by gating all thread-aware logic behind
isGroupchecks.Steps to reproduce
Expected behavior
Bot should reply inside the thread, keeping the conversation within the thread context.
Actual behavior
Three places in
extensions/feishu/src/bot.tshardcode P2P to skip thread-aware reply logic:replyInThreadforced tofalsefor P2P — Feishu API never receivesreply_in_thread: truereplyTargetMessageIdignoresroot_idfor P2P — reply targets the triggering message instead of the thread rootskipReplyToInMessages: !isGroup— P2P always skips reply-to, so the send layer usesim.message.create(new message) instead ofim.message.reply(thread reply)Per the Feishu API docs,
thread_idindicates a thread message whileroot_idalone indicates a quote reply. The fix uses thisdistinction to handle P2P threads correctly without affecting group behavior.
OpenClaw version
2026.3.3
Operating system
macOS 15.4
Install method
No response
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
No response