Skip to content

fix(auto-reply): keep group visible replies deliverable#75382

Merged
clawsweeper[bot] merged 1 commit into
mainfrom
fix/qa-channel-group-visible-replies
May 1, 2026
Merged

fix(auto-reply): keep group visible replies deliverable#75382
clawsweeper[bot] merged 1 commit into
mainfrom
fix/qa-channel-group-visible-replies

Conversation

@steipete

@steipete steipete commented May 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • keep the message tool available when group/channel visible replies require message-tool delivery
  • include group/subagent tool policy in visible-reply fallback detection so restricted rooms fall back to automatic delivery instead of going silent
  • extend qa-channel and qa-lab with Discord/Slack-style group:<room> coverage for message-tool replies and fallback replies

Verification

  • pnpm test extensions/qa-channel/src/bus-client.test.ts extensions/qa-channel/src/channel.test.ts extensions/qa-lab/src/scenario-catalog.test.ts extensions/qa-lab/src/providers/mock-openai/server.test.ts src/auto-reply/reply/dispatch-from-config.test.ts src/auto-reply/reply/followup-runner.test.ts
  • pnpm config:channels:check
  • git diff --check
  • OPENCLAW_QA_SUITE_PROGRESS=1 fnm exec --using v22.21.1 node --input-type=module ... for group-visible-reply-tool and group-message-tool-unavailable-fallback

QA artifact: .artifacts/qa-e2e/group-visible-replies-pr/qa-suite-report.md

Fixes #74842. Refs #75207.

@steipete

steipete commented May 1, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper automerge

@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation agents Agent runtime and tooling channel: qa-channel Channel integration: qa-channel extensions: qa-lab size: L maintainer Maintainer-authored PR labels May 1, 2026
@clawsweeper

clawsweeper Bot commented May 1, 2026

Copy link
Copy Markdown
Contributor

Codex review: passed for ClawSweeper automerge.

What this changes:

The PR updates auto-reply message-tool availability and fallback policy, qa-channel group target support, qa-lab scenario coverage, generated config metadata, docs, and the changelog for group visible replies.

Automerge follow-up:

No repair job is needed: this automerge-opted PR has no discrete actionable finding from this review, and the remaining action is exact-head CI/mergeability gating rather than an automated fix branch.

Security review:

Security review cleared: No concrete security or supply-chain issue found; the diff does not change dependencies, workflows, lockfiles, release scripts, or secret handling, and the message-tool grant remains policy-constrained.

Review details

Best possible solution:

Land this PR through the existing automerge gate once exact-head checks and mergeability are green, keeping the generic dispatch/tool-policy seam and qa-channel/qa-lab scenarios as regression coverage for #74842 and #75207.

Do we have a high-confidence way to reproduce the issue?

Yes. #74842 and #75207 describe Discord channel/group turns where generation completed locally but no visible reply was delivered, and this PR adds deterministic qa-lab scenarios for both message-tool delivery and automatic fallback when group policy removes message.

Is this the best way to solve the issue?

Yes. The patch fixes the generic availability decision, preserves explicit deny/group/subagent policy precedence, and keeps synthetic group coverage in the qa-channel/qa-lab plugin surfaces instead of adding Discord-specific core behavior.

What I checked:

  • Current-main dispatch gap: Current main computes messageToolAvailable from profile/global/agent policies only, before the active group and subagent tool policies are included, so room-scoped removal of message is not visible to fallback selection. (src/auto-reply/reply/dispatch-from-config.ts:620, eabab1f64f9e)
  • Existing fallback seam: The current source-reply delivery helper already falls back from message_tool_only to automatic when messageToolAvailable is false, which makes the PR's expanded availability calculation the right seam to repair. (src/auto-reply/reply/source-reply-delivery-mode.ts:17, eabab1f64f9e)
  • Current-main qa-channel gap: Current main parses only dm:, channel:, and thread: targets, and resolves non-direct qa-channel routes as channel, so it cannot model Discord/Slack-style group:<room> sessions for the new QA coverage. (extensions/qa-channel/src/bus-client.ts:120, eabab1f64f9e)
  • PR patch shape: The PR head adds runtime profile message allowance for message-tool delivery, includes group/subagent policies in the availability check, passes forceMessageTool for message-tool-only follow-up runs, and adds qa-channel/qa-lab group scenarios. (src/auto-reply/reply/dispatch-from-config.ts:620, adbec93b8a13)
  • PR head verification: The remote PR head is adbec93b8a134448a08e55176237ea33ab0d01fc, matching the repaired head in the provided GitHub context. (adbec93b8a13)
  • Security-sensitive policy check: The message-tool grant remains constrained by isToolAllowedByPolicies, which requires every applicable policy to allow the tool; deny and non-empty allowlists still win. (src/agents/tool-policy-match.ts:42, eabab1f64f9e)

Likely related people:

  • steipete: Recent current-main history covers source reply delivery mode, private group replies, visible-reply warnings, and related group docs around this exact behavior. (role: recent maintainer and feature owner; confidence: high; commits: 82ca6ecdde80, 67b16a4a6d25, bb7e8624abd8; files: src/auto-reply/reply/dispatch-from-config.ts, src/auto-reply/reply/source-reply-delivery-mode.ts, docs/channels/groups.md)
  • scoootscooob: The group/channel message-tool default traces to the commit titled fix(messages): keep group replies tool-only by default. (role: introduced affected default behavior; confidence: medium; commits: 3c636208b0a0; files: src/auto-reply/reply/dispatch-from-config.ts, docs/channels/groups.md)
  • mmaps: Recent current-main work moved the groupId trust check into resolveGroupToolPolicy, the policy layer this PR now includes in fallback detection. (role: recent group tool-policy maintainer; confidence: medium; commits: 665b0ef542ef; files: src/agents/pi-tools.policy.ts)
  • amknight: Recent commits touched implicit tool grants, tool-policy security, Discord session-key fallback, and nearby delivery behavior. (role: adjacent policy and channel-delivery maintainer; confidence: medium; commits: 4aa08e9d7946, e4ff7c162044; files: src/agents/pi-tools.policy.ts, src/auto-reply/reply/dispatch-from-config.ts)

Remaining risk / open question:

  • Exact-head CI and mergeability still need to gate the merge; this read-only review did not run the PR's validation commands.

Codex review notes: model gpt-5.5, reasoning high; reviewed against eabab1f64f9e.

@clawsweeper clawsweeper Bot added the clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge label May 1, 2026
@clawsweeper

clawsweeper Bot commented May 1, 2026

Copy link
Copy Markdown
Contributor

🦞🦞
ClawSweeper automerge is enabled for this PR.

I added clawsweeper:automerge and asked ClawSweeper to review this head. If ClawSweeper emits a repair marker or requests changes, I will repair/rebase the branch and ask for another review, up to the configured round limit.

Draft PRs stay fix-only until GitHub marks them ready for review. A maintainer can pause this with /clawsweeper stop.

@clawsweeper

clawsweeper Bot commented May 1, 2026

Copy link
Copy Markdown
Contributor

🦞🦞
Thanks, ClawSweeper. ClawSweeper saw the passing review, but the PR needs another repair pass before merge.

Source: clawsweeper[bot]
Feedback: structured ClawSweeper verdict: pass (sha=6c8ee20e0cf9ccbe1933ca89025ee2bd20308f48); PR is behind or has merge conflicts and needs a cloud rebase repair before automerge
Action: dispatched repair-cluster-worker.yml for jobs/openclaw/inbox/automerge-openclaw-openclaw-75382.md in autonomous mode.
Model: gpt-5.5

I will update this PR branch, or open a safe credited replacement, if the repair worker finds a narrow CI fix.

@clawsweeper

clawsweeper Bot commented May 1, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper 🐠 reef update

Thanks for the contribution here. ClawSweeper gave the branch a tidy little reef repair and kept this PR as the main lane.

Source PR: #75382
Validation: pnpm check:changed
The contributor trail stays intact here: branch history, PR context, and changelog credit all still point back to this work.

fish notes: model gpt-5.5, reasoning medium; reviewed against adbec93.

@clawsweeper clawsweeper Bot force-pushed the fix/qa-channel-group-visible-replies branch from 6c8ee20 to adbec93 Compare May 1, 2026 04:56
@clawsweeper clawsweeper Bot added the clawsweeper:merge-ready ClawSweeper found the PR merge-ready but a human gate is still closed label May 1, 2026
@clawsweeper

clawsweeper Bot commented May 1, 2026

Copy link
Copy Markdown
Contributor

🦞🦞
Thanks, ClawSweeper. ClawSweeper merged this PR after the passing review.

Source: clawsweeper[bot]
Feedback: structured ClawSweeper verdict: pass (sha=adbec93b8a134448a08e55176237ea33ab0d01fc)
Merge status: merged by ClawSweeper automerge
Merged at: 2026-05-01T05:07:03Z
Merge commit: 1c300ce

What merged:

  • The PR updates auto-reply message-tool availability and fallback policy, qa-channel group target support, qa-lab scenario coverage, generated config metadata, docs, and the changelog for group visible replies.

Fixups included:

  • No separate fixup commits were needed after automerge opt-in.

The automerge loop is complete.

@clawsweeper clawsweeper Bot removed the clawsweeper:merge-ready ClawSweeper found the PR merge-ready but a human gate is still closed label May 1, 2026
@clawsweeper clawsweeper Bot merged commit 1c300ce into main May 1, 2026
106 checks passed
@clawsweeper clawsweeper Bot deleted the fix/qa-channel-group-visible-replies branch May 1, 2026 05:07
lxe pushed a commit to lxe/openclaw that referenced this pull request May 6, 2026
Summary:
- The PR updates auto-reply message-tool availability and fallback policy, qa-channel group target support, qa-lab scenario coverage, generated config metadata, docs, and the changelog for group visible replies.

ClawSweeper fixups:
- No separate fixup commits were needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head adbec93.
- Required merge gates passed before the squash merge.

Prepared head SHA: adbec93
Review: openclaw#75382 (comment)

Co-authored-by: Peter Steinberger <steipete@gmail.com>
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 9, 2026
Summary:
- The PR updates auto-reply message-tool availability and fallback policy, qa-channel group target support, qa-lab scenario coverage, generated config metadata, docs, and the changelog for group visible replies.

ClawSweeper fixups:
- No separate fixup commits were needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head adbec93.
- Required merge gates passed before the squash merge.

Prepared head SHA: adbec93
Review: openclaw#75382 (comment)

Co-authored-by: Peter Steinberger <steipete@gmail.com>
greench-ai pushed a commit to greench-ai/nexisclaw that referenced this pull request May 12, 2026
Summary:
- The PR updates auto-reply message-tool availability and fallback policy, qa-channel group target support, qa-lab scenario coverage, generated config metadata, docs, and the changelog for group visible replies.

ClawSweeper fixups:
- No separate fixup commits were needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head adbec93b8a134448a08e55176237ea33ab0d01fc.
- Required merge gates passed before the squash merge.

Prepared head SHA: adbec93b8a134448a08e55176237ea33ab0d01fc
Review: openclaw/openclaw#75382 (comment)

Co-authored-by: Peter Steinberger <steipete@gmail.com>
markfietje pushed a commit to markfietje/openclaw that referenced this pull request May 20, 2026
Summary:
- The PR updates auto-reply message-tool availability and fallback policy, qa-channel group target support, qa-lab scenario coverage, generated config metadata, docs, and the changelog for group visible replies.

ClawSweeper fixups:
- No separate fixup commits were needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head adbec93b8a134448a08e55176237ea33ab0d01fc.
- Required merge gates passed before the squash merge.

Prepared head SHA: adbec93b8a134448a08e55176237ea33ab0d01fc
Review: openclaw/openclaw#75382 (comment)

Co-authored-by: Peter Steinberger <steipete@gmail.com>
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 24, 2026
Summary:
- The PR updates auto-reply message-tool availability and fallback policy, qa-channel group target support, qa-lab scenario coverage, generated config metadata, docs, and the changelog for group visible replies.

ClawSweeper fixups:
- No separate fixup commits were needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head adbec93.
- Required merge gates passed before the squash merge.

Prepared head SHA: adbec93
Review: openclaw#75382 (comment)

Co-authored-by: Peter Steinberger <steipete@gmail.com>
jameslcowan pushed a commit to jameslcowan/openclaw that referenced this pull request Jun 2, 2026
Summary:
- The PR updates auto-reply message-tool availability and fallback policy, qa-channel group target support, qa-lab scenario coverage, generated config metadata, docs, and the changelog for group visible replies.

ClawSweeper fixups:
- No separate fixup commits were needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head adbec93.
- Required merge gates passed before the squash merge.

Prepared head SHA: adbec93
Review: openclaw#75382 (comment)

Co-authored-by: Peter Steinberger <steipete@gmail.com>
sablehead pushed a commit to sablehead/openclaw that referenced this pull request Jun 10, 2026
Summary:
- The PR updates auto-reply message-tool availability and fallback policy, qa-channel group target support, qa-lab scenario coverage, generated config metadata, docs, and the changelog for group visible replies.

ClawSweeper fixups:
- No separate fixup commits were needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head adbec93.
- Required merge gates passed before the squash merge.

Prepared head SHA: adbec93
Review: openclaw#75382 (comment)

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling channel: qa-channel Channel integration: qa-channel clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge docs Improvements or additions to documentation extensions: qa-lab maintainer Maintainer-authored PR size: L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Discord channel replies may go silent after upgrade unless groupChat.visibleReplies is automatic

1 participant