[codex] Add WhatsApp group listen windows#110947
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed July 19, 2026, 2:41 AM ET / 06:41 UTC. Summary PR surface: Source +161, Tests +139, Docs +5. Total +305 across 7 files. Reproducibility: not applicable. as a bug reproduction: this PR proposes a new WhatsApp group-activation capability. A real after-fix scenario is still needed to substantiate the implementation behavior claimed by the contributor. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: If product direction is approved, retain the opt-in default-off design, document its exact reset and restart semantics, and add a redacted live WhatsApp transcript or terminal/log capture demonstrating mention, unmentioned follow-up, window expiry, and Do we have a high-confidence way to reproduce the issue? Not applicable as a bug reproduction: this PR proposes a new WhatsApp group-activation capability. A real after-fix scenario is still needed to substantiate the implementation behavior claimed by the contributor. Is this the best way to solve the issue? Unclear. The branch places the behavior in the WhatsApp gating path and keeps it opt-in, but whether a permanent third activation mode and two new settings are the best supported product contract needs maintainer direction. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against aaacee8166cd. Label changesLabel justifications:
Evidence reviewedPR surface: Source +161, Tests +139, Docs +5. Total +305 across 7 files. View PR surface stats
What I checked:
Likely related people:
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. How this review workflow works
|
|
Live local behavior proof from a patched OpenClaw 2026.6.11 install. Sanitized to avoid exposing private WhatsApp content or identifiers. Retest time: 2026-07-19 06:55-06:57 Asia/Jerusalem. Observed sequence:
I also saw a separate local duplicate-route issue on another WhatsApp account in the same test group, producing @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
What Problem This Solves
WhatsApp group agents currently have two practical modes: wake only on each mention, or wake on every message with
/activation always. In real group conversations, users often mention the agent once and then continue with follow-up messages without repeating the mention, so the agent misses the rest of the short exchange unless the owner switches the whole group to always-on.This PR adds an opt-in middle ground for allowed WhatsApp groups: a temporary listen window after a valid mention. It keeps the existing group allowlist and sender authorization gates intact, and only relaxes mention gating for the same account, agent, session, and group JID while the window is active.
Summary
listenAfterMentionMsandlistenAfterMentionMaxMsper WhatsApp group entry/activation mentionwithout reopening it from the command turnEvidence
git diff --checknpm exec -- oxfmt --check docs/channels/group-messages.md extensions/whatsapp/src/auto-reply/monitor/group-listen-window.ts extensions/whatsapp/src/auto-reply/monitor/group-gating.ts extensions/whatsapp/src/auto-reply/monitor/group-gating.audio-preflight.test.ts extensions/whatsapp/src/config-schema.test.ts src/config/types.whatsapp.ts src/config/zod-schema.providers-whatsapp.tsnpm exec -- oxlint --tsconfig config/tsconfig/oxlint.extensions.json extensions/whatsapp/src/auto-reply/monitor/group-listen-window.ts extensions/whatsapp/src/auto-reply/monitor/group-gating.ts extensions/whatsapp/src/auto-reply/monitor/group-gating.audio-preflight.test.ts extensions/whatsapp/src/config-schema.test.tsnpm run test -- extensions/whatsapp/src/auto-reply/monitor/group-gating.audio-preflight.test.ts extensions/whatsapp/src/config-schema.test.tsNote:
pnpm lint:extensionscould not complete in this local shell becausepnpmis unavailable; focusednpm execoxlint was used instead.