-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
Discord room events can suppress final assistant replies into transcript-only mode #84022
Copy link
Copy link
Closed
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Priority
None yet
Summary
Discord room/thread events can produce a complete final assistant answer in the session transcript while nothing is posted back to Discord. The visible channel only gets tool/status messages, which makes the user experience look like messages are being dropped.
Observed behavior
On an OpenClaw 2026.5.18 gateway:
This reproduced in at least two Discord surfaces:
1506182302055665705contained the full final answer in the session file, but Discord showed only the user message plus a tool failure status.#command-deckshowed the same pattern: final diagnosis existed in the session, but was not delivered to Discord.Likely cause
Room events are hard-forced into
sourceReplyDeliveryMode: "message_tool_only", even when config asks for automatic visible replies:With that mode active, normal final assistant text is treated as transcript/private unless the model explicitly uses the
messagetool. If it does not, the final answer is effectively invisible on Discord.Expected behavior
When
messages.groupChat.visibleReplies: "automatic"ormessages.visibleReplies: "automatic"is configured, Discord room/thread events should deliver normal final assistant text back to the source conversation.If
message_tool_onlyis required for some room-event cases, OpenClaw should have a fallback: whencounts.final === 0and no visiblemessagetool send occurred, deliver the final assistant text or emit a clear visible delivery failure.Local hotfix tested
As a runtime hotfix on the installed dist package, removing the room-event hard-force and allowing the configured visible-reply policy to resolve normally passes
node --checkon the edited dist files.Changed locally:
dist/source-reply-delivery-mode-*.js: no longer returnsmessage_tool_onlysolely forInboundEventKind === "room_event".dist/dispatch-*.js: no longer setsstrictMessageToolOnlysolely because the inbound event is a room event.dist/get-reply-*.js: passes throughopts?.sourceReplyDeliveryModeinstead of forcing room events tomessage_tool_only.dist/tool-resolution-*.js: no longer adds message-tool-only mode solely for room events.Environment
2026.5.18openclaw-gateway.servicemessages.groupChat.visibleReplies: "automatic"