Add WhatsApp approval QA scenarios#87782
Conversation
|
Codex review: needs maintainer review before merge. Reviewed May 28, 2026, 6:09 PM ET / 22:09 UTC. Summary PR surface: Source +418, Tests +79, Docs +42. Total +539 across 3 files. Reproducibility: not applicable. This PR adds QA coverage rather than reporting a current-main bug. The contributor did provide a high-confidence live WhatsApp QA run for the two new scenarios. 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. Next step before merge
Security Review detailsBest possible solution: Land after maintainer approval and current checks, preserving the explicit-only WhatsApp approval scenarios alongside the existing Slack equivalents. Do we have a high-confidence way to reproduce the issue? Not applicable: this PR adds QA coverage rather than reporting a current-main bug. The contributor did provide a high-confidence live WhatsApp QA run for the two new scenarios. Is this the best way to solve the issue? Yes: the implementation follows the existing Slack native approval QA pattern, keeps approval scenarios explicit-only, and adds focused tests plus docs for the new lane behavior. AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 4287cd2e6e35. Label changesLabel justifications:
Evidence reviewedPR surface: Source +418, Tests +79, Docs +42. Total +539 across 3 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
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 76a2d4ecef
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
0975ad2 to
49743d2
Compare
49743d2 to
083bf94
Compare
* test(qa): add WhatsApp approval scenarios * fix(qa): keep WhatsApp approval scenarios explicit
* test(qa): add WhatsApp approval scenarios * fix(qa): keep WhatsApp approval scenarios explicit
* test(qa): add WhatsApp approval scenarios * fix(qa): keep WhatsApp approval scenarios explicit
* test(qa): add WhatsApp approval scenarios * fix(qa): keep WhatsApp approval scenarios explicit
Summary
whatsapp-approval-exec-nativeandwhatsapp-approval-plugin-native.Verification
node scripts/run-vitest.mjs extensions/qa-lab/src/live-transports/whatsapp/whatsapp-live.runtime.test.ts extensions/qa-lab/src/live-transports/whatsapp/whatsapp-boundary.test.ts extensions/qa-lab/src/live-transports/shared/live-transport-scenarios.test.ts extensions/whatsapp/src/approval-auth.test.ts extensions/whatsapp/src/approval-handler.runtime.test.ts extensions/whatsapp/src/approval-native.test.ts extensions/whatsapp/src/approval-reactions.test.tsorigin/main.OPENCLAW_TSGO_HEAVY_CHECK_LOCK_HELD=1 node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.extensions.test.json --incremental falseOPENCLAW_OXLINT_SKIP_LOCK=1 OPENCLAW_OXLINT_SHARD_HEARTBEAT_MS=0 node scripts/run-oxlint-shards.mjs --only extensionsCI=true pnpm_config_confirm_modules_purge=false pnpm_config_minimum_release_age=0 OPENCLAW_HOME=/private/tmp/openclaw-whatsapp-approval-qa-home-prebuild node scripts/run-node.mjs qa whatsapp --helpjimpwarning was treated as external and the command exited 0.git diff --check.artifacts/qa-e2e/whatsapp-approval-env-20260528-1310/whatsapp-qa-summary.jsonReal behavior proof
Behavior addressed: WhatsApp now has QA Lab coverage equivalent to
slack-approval-exec-nativeandslack-approval-plugin-native, proving native WhatsApp exec and plugin approval prompts can be requested, observed, resolved, and matched.Real environment tested: Local OpenClaw worktree with the WhatsApp QA Lab lane, real pre-linked WhatsApp Web QA credentials sourced from the Convex credential payload in memory, and
mock-openaiprovider mode.Exact steps or command run after this patch: Ran the private QA CLI against
--scenario whatsapp-approval-exec-native --scenario whatsapp-approval-plugin-nativewith--credential-source env, after mapping the active Convex WhatsApp credential payload intoOPENCLAW_QA_WHATSAPP_*variables in the child process without printing the payload.Evidence after fix:
.artifacts/qa-e2e/whatsapp-approval-env-20260528-1310/whatsapp-qa-summary.jsonreportstotal: 2,passed: 2,failed: 0,skipped: 0.Copied live output from the redacted summary artifact:
{ "counts": { "total": 2, "passed": 2, "failed": 0, "skipped": 0 }, "scenarios": [ { "id": "whatsapp-approval-exec-native", "status": "pass", "details": "exec approval whatsapp-qa-exec-a2151c2f-0225-4f13-b5ef-387bde27837b resolved allow-once in 838ms" }, { "id": "whatsapp-approval-plugin-native", "status": "pass", "details": "plugin approval plugin:72620973-7ebb-42cd-97ae-935287bd46ca resolved allow-once in 494ms" } ] }Observed result after fix:
whatsapp-approval-exec-nativepassed withallow-onceresolution in 838ms, andwhatsapp-approval-plugin-nativepassed withallow-onceresolution in 494ms.whatsapp-qa-observed-messages.jsonincludes pending and resolved matched messages for both scenarios.What was not tested: The full all-scenario WhatsApp lane was not rerun after this patch; the live run was scoped to the two new approval scenarios.