Skip to content

[Bug]: Command replies silently dropped in group chats when visibleReplies is set to message_tool #77260

@awayspam

Description

@awayspam

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingregressionBehavior that previously worked and now fails

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions