openclaw - 💡(How to fix) Fix [Bug]: visibleReplies automatic exposes tool/progress chatter in group rooms [1 comments, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#74631Fetched 2026-04-30 06:21:57
View on GitHub
Comments
1
Participants
1
Timeline
2
Reactions
0
Participants
Timeline (top)
closed ×1commented ×1

messages.groupChat.visibleReplies: "automatic" is documented/implemented as the legacy behavior for group/channel room replies, but it currently exposes tool/progress/thinking-style runtime messages in Slack group/channel sessions. Legacy auto-posting behavior showed normal user-facing assistant output in the room, but did not show routine tool call summaries, tool updates, or thinking/progress chatter.

Root Cause

For group/channel rooms, operators currently have two bad choices:

  1. visibleReplies: "message_tool" — clean UX, but normal assistant final/conversational replies stay private unless the agent explicitly calls message(action=send).
  2. visibleReplies: "automatic" — normal replies are visible, but Slack channels can also receive noisy internal/runtime output such as Working..., tool: exec, command summaries, or similar tool/progress events.

The desired legacy-compatible behavior is: user-facing assistant output is visible automatically, while routine thinking/tool/progress streams remain hidden from the room.

Fix Action

Fix / Workaround

  • src/auto-reply/reply/source-reply-delivery-mode.ts
  • src/auto-reply/reply/dispatch-from-config.ts
  • src/auto-reply/reply/dispatch-acp.ts
  • src/auto-reply/reply/acp-projector.ts
  • ACP delivery/projector tests around visibleReplies: "automatic"
RAW_BUFFERClick to expand / collapse

Summary

messages.groupChat.visibleReplies: "automatic" is documented/implemented as the legacy behavior for group/channel room replies, but it currently exposes tool/progress/thinking-style runtime messages in Slack group/channel sessions. Legacy auto-posting behavior showed normal user-facing assistant output in the room, but did not show routine tool call summaries, tool updates, or thinking/progress chatter.

Why this matters

For group/channel rooms, operators currently have two bad choices:

  1. visibleReplies: "message_tool" — clean UX, but normal assistant final/conversational replies stay private unless the agent explicitly calls message(action=send).
  2. visibleReplies: "automatic" — normal replies are visible, but Slack channels can also receive noisy internal/runtime output such as Working..., tool: exec, command summaries, or similar tool/progress events.

The desired legacy-compatible behavior is: user-facing assistant output is visible automatically, while routine thinking/tool/progress streams remain hidden from the room.

Expected behavior

With messages.groupChat.visibleReplies: "automatic" in a Slack channel/group:

  • user-facing assistant conversational output is delivered visibly to the source room
  • reasoning/thinking streams are not delivered visibly
  • routine tool call summaries are not delivered visibly
  • routine tool call updates/progress/status are not delivered visibly
  • existing actionable exceptions should continue to work where intended, e.g. approval prompts, generated media/tool media, native command UX, or other payloads that require user action/visibility
  • DMs and native command flows should preserve their existing behavior

Actual behavior

After enabling messages.groupChat.visibleReplies: "automatic", Slack group/channel sessions can show runtime/tool/progress chatter in the room alongside normal replies. This does not match the old/legacy automatic room reply behavior.

Likely cause / implementation direction

Recent source-reply delivery changes introduced a binary source delivery mode:

  • message_tool_only for default group/channel rooms
  • automatic for legacy room replies

The automatic path appears to unsuppress more than just user-facing assistant output. The fix should split source reply visibility from internal/progress event visibility.

Possible implementation shape:

  • keep visibleReplies: "automatic" as the legacy room reply mode
  • for non-direct Slack/group/channel source turns, only auto-route user-facing assistant output (final and conversational block payloads)
  • continue suppressing ACP/tool/thinking/status categories such as:
    • agent_thought_chunk
    • tool_call
    • tool_call_update
    • routine status/progress events
  • preserve explicit/actionable payload cases, such as approval prompts and tool media, where current tests intentionally allow delivery

Candidate areas to inspect:

  • src/auto-reply/reply/source-reply-delivery-mode.ts
  • src/auto-reply/reply/dispatch-from-config.ts
  • src/auto-reply/reply/dispatch-acp.ts
  • src/auto-reply/reply/acp-projector.ts
  • ACP delivery/projector tests around visibleReplies: "automatic"

Related context

PR #73046 (fix(messages): keep group replies tool-only by default) introduced/solidified the current message_tool vs automatic behavior. The issue is not that message_tool exists; that default is useful. The regression is that automatic, described as legacy auto-posting, appears broader than legacy behavior and can surface routine tool/progress output.

Suggested tests

Add/adjust tests for Slack/group/channel source turns with visibleReplies: "automatic":

  • final assistant reply is delivered
  • conversational block assistant output is delivered if applicable
  • routine tool summary is not delivered
  • tool call/update ACP events are not delivered
  • thinking/reasoning chunks are not delivered
  • routine status/progress messages are not delivered
  • approval payloads and media/tool attachments that require visibility remain delivered
  • visibleReplies: "message_tool" behavior remains unchanged
  • native command reply visibility remains unchanged

extent analysis

TL;DR

Update the automatic source reply delivery mode to only auto-route user-facing assistant output, while suppressing internal/progress events.

Guidance

  • Inspect the candidate areas src/auto-reply/reply/source-reply-delivery-mode.ts, src/auto-reply/reply/dispatch-from-config.ts, src/auto-reply/reply/dispatch-acp.ts, and src/auto-reply/reply/acp-projector.ts to identify where the automatic mode is currently unsuppressing more than just user-facing assistant output.
  • Modify the automatic path to only deliver final and conversational block payloads, while continuing to suppress ACP/tool/thinking/status categories such as agent_thought_chunk, tool_call, tool_call_update, and routine status/progress events.
  • Preserve explicit/actionable payload cases, such as approval prompts and tool media, where current tests intentionally allow delivery.
  • Add or adjust tests for Slack/group/channel source turns with visibleReplies: "automatic" to ensure the desired behavior is achieved.

Example

No code snippet is provided as the issue does not contain sufficient information to generate a specific code example.

Notes

The fix should be careful not to introduce any regressions in the existing behavior of visibleReplies: "message_tool" or native command reply visibility.

Recommendation

Apply a workaround by updating the automatic source reply delivery mode to only auto-route user-facing assistant output, while suppressing internal/progress events, as this is the most likely cause of the issue and aligns with the desired legacy-compatible behavior.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

With messages.groupChat.visibleReplies: "automatic" in a Slack channel/group:

  • user-facing assistant conversational output is delivered visibly to the source room
  • reasoning/thinking streams are not delivered visibly
  • routine tool call summaries are not delivered visibly
  • routine tool call updates/progress/status are not delivered visibly
  • existing actionable exceptions should continue to work where intended, e.g. approval prompts, generated media/tool media, native command UX, or other payloads that require user action/visibility
  • DMs and native command flows should preserve their existing behavior

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix [Bug]: visibleReplies automatic exposes tool/progress chatter in group rooms [1 comments, 1 participants]