Bug type
Regression (worked before, now fails)
Beta release blocker
No
Summary
When messages.groupChat.visibleReplies is set to "message_tool", slash command replies (e.g. /new, /status) are silently dropped instead of being delivered to the group chat.
Worked previously with the same setup in version v2026.4.25, any version after this the commands get dropped in matrix.
Steps to reproduce
Set messages.groupChat.visibleReplies: "message_tool" in the config
Send /new in a Matrix group chat
Observe: no confirmation reply appears in the channel
Expected behavior
The confirmation reply (e.g. "✅ New session started.") should appear in the group chat. Command results are system responses, not AI-generated content — the visibleReplies delivery mode should not suppress them.
Actual behavior
No reply is delivered. The command processes correctly (session resets, the action is logged) but the user receives no feedback.
OpenClaw version
v2026.5.3-1
Operating system
Debian 13
Install method
npm global install
Model
N/A (framework-level, occurs before any model is invoked)
Provider / routing chain
N/A
Additional provider/model setup details
No response
Logs, screenshots, and evidence
commands.log confirms /new is received and processed — session resets happen but no reply is delivered
The root cause is in source-reply-delivery-mode-CaGAojK-.js, function resolveSourceReplyDeliveryMode:
For group chats, it returns "message_tool_only" when visibleReplies is not "automatic"
This sets suppressAutomaticSourceDelivery = true in resolveSourceReplyVisibilityPolicy
The only bypass is CommandSource === "native", which is false for Matrix text-prefix commands
In the web UI, command replies are not affected because the web UI uses a different reply dispatch path
Impact and severity
Users in group chats with visibleReplies: "message_tool" get no visual feedback for any slash command (/new, /status, /list, etc.). The commands work but appear to do nothing from the user's perspective. This affects all non-native-command channels (Matrix, Telegram, WhatsApp, etc.) where commands are sent as text messages rather than platform slash commands.
Additional information
The fix should make pre-canned command/system replies bypass the visibleReplies suppression, not just CommandSource === "native". Command results are distinct from AI-generated content and should always be delivered regardless of the visibleReplies config.
Bug type
Regression (worked before, now fails)
Beta release blocker
No
Summary
When messages.groupChat.visibleReplies is set to "message_tool", slash command replies (e.g. /new, /status) are silently dropped instead of being delivered to the group chat.
Worked previously with the same setup in version v2026.4.25, any version after this the commands get dropped in matrix.
Steps to reproduce
Set messages.groupChat.visibleReplies: "message_tool" in the config
Send /new in a Matrix group chat
Observe: no confirmation reply appears in the channel
Expected behavior
The confirmation reply (e.g. "✅ New session started.") should appear in the group chat. Command results are system responses, not AI-generated content — the visibleReplies delivery mode should not suppress them.
Actual behavior
No reply is delivered. The command processes correctly (session resets, the action is logged) but the user receives no feedback.
OpenClaw version
v2026.5.3-1
Operating system
Debian 13
Install method
npm global install
Model
N/A (framework-level, occurs before any model is invoked)
Provider / routing chain
N/A
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
Users in group chats with visibleReplies: "message_tool" get no visual feedback for any slash command (/new, /status, /list, etc.). The commands work but appear to do nothing from the user's perspective. This affects all non-native-command channels (Matrix, Telegram, WhatsApp, etc.) where commands are sent as text messages rather than platform slash commands.
Additional information
The fix should make pre-canned command/system replies bypass the visibleReplies suppression, not just CommandSource === "native". Command results are distinct from AI-generated content and should always be delivered regardless of the visibleReplies config.