-
-
Notifications
You must be signed in to change notification settings - Fork 57.5k
Description
Bug
The message tool's send action reads the replyTo parameter (line ~14272 in loader) and uses it for session routing, but sendMessage() (line ~11639) never passes replyToId to deliverOutboundPayloads().
Impact
Thread replies via the message tool are broken for Mattermost (and likely all channels that support threading). Messages always post at channel root instead of in the specified thread.
Root Cause
In loader-Ds3or8QX.js:
- Line 14272:
replyToIdis read fromreplyToparam ✅ - Line 14287:
replyToIdis passed toresolveOutboundSessionRoutefor session routing ✅ - Line 14303:
executeSendActionis called, which callssendMessage() - Line 11672:
sendMessage()callsdeliverOutboundPayloads()withoutreplyToId❌
The Mattermost adapter (send.ts) correctly maps opts.replyToId → rootId in createMattermostPost, so the adapter is fine — it's the plumbing that drops the value.
Contrast
The reply-routing path (line ~16681) correctly passes replyToId to deliverOutboundPayloads. Only the message tool send action path is broken.
Expected
message(action="send", channel="mattermost", channelId="...", replyTo="<post_id>", message="...") should post as a thread reply to the specified post.
Versions
OpenClaw v2026.2.9