fix(channels): honor /verbose in group sessions#85488
Conversation
|
Codex review: needs real behavior proof before merge. Latest ClawSweeper review: 2026-05-23 21:34 UTC / May 23, 2026, 5:34 PM ET. Workflow note: Future ClawSweeper reviews update this same comment in place. How this review workflow works
PR Surface View PR surface stats
Summary Reproducibility: yes. source inspection on current main shows normal groups are hard-suppressed regardless of verbose state, and the PR body includes before/after Telegram output. I did not run the live transport scenario in this read-only review. PR rating Rank-up moves:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. Real behavior proof Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge Security Review findings
Review detailsBest possible solution: Keep non-direct group/channel progress private by default, make tool/progress summaries visible only for an explicit session Do we have a high-confidence way to reproduce the issue? Yes, source inspection on current main shows normal groups are hard-suppressed regardless of verbose state, and the PR body includes before/after Telegram output. I did not run the live transport scenario in this read-only review. Is this the best way to solve the issue? No, not as written: the central fix direction is right, but the current implementation is too broad for room privacy and changes a public hook contract. The narrower solution is an explicit session verbose gate for non-direct rooms plus current-head proof. Label changes:
Label justifications:
Full review comments:
Overall correctness: patch is incorrect Security concerns:
What I checked:
Likely related people:
Codex review notes: model gpt-5.5, reasoning high; reviewed against a705a9c911bc. |
|
ClawSweeper PR egg 🎁 Pass real behavior proof to wake the egg and unlock a hatchable treat. Where did the egg go?
|
7011157 to
2538280
Compare
|
@clawsweeper re-review |
|
🦞👀 Command router queued. I will update this comment with the next step. |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
39d91c3 to
65643c2
Compare
|
Verification for the maintainer fixup stack: Behavior addressed: Real environment tested: Blacksmith Testbox via Crabbox, GitHub PR CI on head Exact steps or command run after this patch:
Evidence after fix: Testbox Observed result after fix: hidden/default-quiet tool progress is blocked before TTS/media conversion, queued follow-up progress and compaction notices follow live verbose state, ACP What was not tested: no fresh live Telegram/Slack manual room run; covered by focused dispatch/followup/ACP regression tests plus full PR CI. |
Thanks Pete for the fixup and merge! Happy we got that working |
Summary
This fixes normal group verbose tool/progress summary delivery by honoring explicit group
/verbosestate./verbose onwas enabled for that group./verbosesession state./verbose onnow allows tool/progress summaries;/verbose offhides them again.Motivation
Private/group QA needs to show what the agent actually did when verbose mode is explicitly enabled.
/verbosealready controls that visibility, but normal group dispatch ignored it.Although the live proof uses Telegram because that is the configured QA environment, the implementation is intentionally in shared group/ACP dispatch code so group-capable channels use the same verbose gating policy.
Change Type (select all)
Scope (select all touched areas)
Linked Issue/PR
Real behavior proof (required for external PRs)
Behavior or issue addressed:
/verbose ondid not show tool/progress summaries in a normal Telegram group.Real environment tested:
Private Telegram QA supergroup with a Driver bot prompting a SUT bot running OpenClaw from this PR branch. Tokens, chat IDs, and private config are omitted.
Exact steps or command run after this patch:
207742e506./verbose@qa_sut_bot off.Use exactly one shell command: pwd. Then reply exactly: qa-current-verbose-off-done./verbose@qa_sut_bot on.Use exactly one shell command: pwd. Then reply exactly: qa-current-verbose-on-done.Evidence after fix (screenshot, recording, terminal capture, console output, redacted runtime log, linked artifact, or copied live output):
Copied live output from the Telegram QA group after the fix:
Observed result after fix:
/verbose offhides the tool summary./verbose onshows🛠️ pwdbefore the final reply.What was not tested:
I did not run the full repository test suite on this low-memory VPS. I do not have live Slack/Matrix/WhatsApp bots configured for proof, so non-Telegram channels are covered by focused shared-dispatch tests rather than live channel proof.
Before evidence:
Copied live Telegram transcript from
origin/mainshowed that/verbose onstill produced only the final marker in a normal group:Root Cause (if applicable)
Root cause:
Shared group dispatch had a normal-group suppression path for text-only tool/progress summaries that did not account for explicit
/verbosesession state.Missing detection / guardrail:
Existing tests covered default group suppression and topic/non-DM behavior, but not explicit
/verbose onin normal groups.Contributing context:
Telegram QA exposed the issue, but the fix is in shared group dispatch/projection logic.
Regression Test Plan (if applicable)
Coverage level that should have caught this:
Target test or file:
src/auto-reply/reply/dispatch-from-config.test.tssrc/auto-reply/reply/acp-projector.test.tssrc/plugin-sdk/acp-runtime.test.tsScenario the test should lock in:
Groups suppress tool summaries by default, allow them only when explicit group
/verbose onis active, respect live/verbose off, preserve hidden-tool text boundaries, and keep existing topic/non-DM behavior unchanged.Why this is the smallest reliable guardrail:
The bug is in shared dispatch/projection gates, so focused tests cover it without requiring live credentials for every channel.
Existing test that already covers this (if any):
Existing coverage was partial; new focused tests cover this case.
If no new test is added, why not:
N/A. New focused tests are included.
User-visible / Behavior Changes
/verbose onnow shows tool/progress summaries in normal group sessions. Groups remain quiet by default, with inherited verbose defaults, and with/verbose off.Diagram (if applicable)
Security Impact (required)
/verbose on.Yes, explain risk + mitigation:Risk: visible tool/progress summaries can expose command names or arguments to group members. Mitigation: normal groups remain quiet by default; inherited verbose defaults do not opt normal groups into visible summaries; users must explicitly enable
/verbose onin that group session, and/verbose offhides summaries again.Repro + Verification
Environment
Steps
/verbose@qa_sut_bot off.pwdand reply with a marker./verbose@qa_sut_bot on.pwdand reply with a marker.🛠️ pwdappears before the final marker.Expected
Group tool/progress summaries are hidden with default/off state and visible with explicit
/verbose on.Actual
Matches expected in live Telegram QA proof.
Evidence
Attach at least one:
Human Verification (required)
What you personally verified (not just CI), and how:
AI assistance disclosure: Codex helped implement, review, and test this PR; I reviewed the diff and verified the behavior in a live OpenClaw Telegram QA setup.
Verified scenarios:
origin/main:/verbose onstill produced final reply only in a normal Telegram group.207742e506:/verbose offproduced final reply only.207742e506:/verbose onproduced visible🛠️ pwd, then final reply.Local checks:
git diff --check./node_modules/.bin/oxlint src/auto-reply/reply/dispatch-from-config.ts src/auto-reply/reply/dispatch-from-config.test.tsOPENCLAW_TEST_PROJECTS_SERIAL=1 OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs src/auto-reply/reply/dispatch-from-config.test.ts -t "group tool summaries|group progress callbacks|live group tool-summary state|verbose progress"->10 passed | 135 skippedOPENCLAW_TEST_PROJECTS_SERIAL=1 OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs src/auto-reply/reply/dispatch-from-config.test.ts->145 passedCodex review:
207742e506.Edge cases checked:
agents.defaults.verboseDefault: "on"does not opt normal groups into visible summaries./verbose onenables summaries./verbose offhides them again.What you did not verify:
Review Conversations
Compatibility / Migration
Risks and Mitigations
/verbose onin that group session, and/verbose offhides them again.