You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/concepts/qa-e2e-automation.md
+62-30Lines changed: 62 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,6 +48,7 @@ script aliases; both forms are supported.
48
48
|`qa telegram`| Live transport lane against a real private Telegram group. |
49
49
|`qa discord`| Live transport lane against a real private Discord guild channel. |
50
50
|`qa slack`| Live transport lane against a real private Slack channel. |
51
+
|`qa whatsapp`| Live transport lane against real WhatsApp Web accounts. |
51
52
|`qa mantis`| Before and after verification runner for live transport bugs, with Discord status-reactions evidence, Crabbox desktop/browser smoke, and Slack-in-VNC smoke. See [Mantis](/concepts/mantis) and [Mantis Slack Desktop Runbook](/concepts/mantis-slack-desktop-runbook). |
52
53
53
54
## Operator flow
@@ -168,15 +169,16 @@ decision still comes from the Discord REST oracle.
168
169
169
170
CI uses the same command surface in `.github/workflows/qa-live-transports-convex.yml`. Scheduled and default manual runs execute the fast Matrix profile with live frontier credentials, `--fast`, and `OPENCLAW_QA_MATRIX_NO_REPLY_WINDOW_MS=3000`. Manual `matrix_profile=all` fans out into the five profile shards so the exhaustive catalog can run in parallel while keeping one artifact directory per shard.
170
171
171
-
For transport-real Telegram, Discord, and Slack smoke lanes:
172
+
For transport-real Telegram, Discord, Slack, and WhatsApp smoke lanes:
172
173
173
174
```bash
174
175
pnpm openclaw qa telegram
175
176
pnpm openclaw qa discord
176
177
pnpm openclaw qa slack
178
+
pnpm openclaw qa whatsapp
177
179
```
178
180
179
-
They target a pre-existing real channel with two bots (driver + SUT). Required env vars, scenario lists, output artifacts, and the Convex credential pool are documented in [Telegram, Discord, and Slack QA reference](#telegram-discord-and-slack-qa-reference) below.
181
+
They target a pre-existing real channel with two bots or accounts (driver + SUT). Required env vars, scenario lists, output artifacts, and the Convex credential pool are documented in [Telegram, Discord, Slack, and WhatsApp QA reference](#telegram-discord-slack-and-whatsapp-qa-reference) below.
180
182
181
183
For a full Slack desktop VM run with VNC rescue, run:
182
184
@@ -276,10 +278,10 @@ coverage helpers, and scenario-selection helper from
276
278
| Telegram | x | x | x ||||||| x ||
277
279
| Discord | x | x | x |||||||| x |
278
280
| Slack | x | x | x | x | x | x | x | x ||||
281
+
| WhatsApp | x | x || x | x | x ||| x | x ||
279
282
280
283
This keeps `qa-channel` as the broad product-behavior suite while Matrix,
281
-
Telegram, and future live transports share one explicit transport-contract
282
-
checklist.
284
+
Telegram, and other live transports share one explicit transport-contract checklist.
283
285
284
286
For a disposable Linux VM lane without bringing Docker into the QA path, run:
285
287
@@ -308,25 +310,25 @@ guest: env-based provider keys, the QA live provider config path, and
308
310
`CODEX_HOME` when present. Keep `--output-dir` under the repo root so the guest
309
311
can write back through the mounted workspace.
310
312
311
-
## Telegram, Discord, and Slack QA reference
313
+
## Telegram, Discord, Slack, and WhatsApp QA reference
312
314
313
-
Matrix has a [dedicated page](/concepts/qa-matrix) because of its scenario count and Docker-backed homeserver provisioning. Telegram, Discord, and Slack are smaller - a handful of scenarios each, no profile system, against pre-existing real channels - so their reference lives here.
315
+
Matrix has a [dedicated page](/concepts/qa-matrix) because of its scenario count and Docker-backed homeserver provisioning. Telegram, Discord, Slack, and WhatsApp run against pre-existing real transports, so their reference lives here.
314
316
315
317
### Shared CLI flags
316
318
317
319
These lanes register through `extensions/qa-lab/src/live-transports/shared/live-transport-cli.ts` and accept the same flags:
|`--scenario <id>`| - | Run only this scenario. Repeatable. |
322
-
|`--output-dir <path>`|`<repo>/.artifacts/qa-e2e/{telegram,discord,slack}-<timestamp>`| Where reports/summary/observed messages and the output log are written. Relative paths resolve against `--repo-root`. |
323
-
|`--repo-root <path>`|`process.cwd()`| Repository root when invoking from a neutral cwd. |
324
-
|`--sut-account <id>`|`sut`| Temporary account id inside the QA gateway config. |
325
-
|`--provider-mode <mode>`|`live-frontier`|`mock-openai` or `live-frontier` (legacy `live-openai` still works). |
|`--scenario <id>`| - | Run only this scenario. Repeatable. |
324
+
|`--output-dir <path>`|`<repo>/.artifacts/qa-e2e/<transport>-<timestamp>`| Where reports/summary/observed messages and the output log are written. Relative paths resolve against `--repo-root`. |
325
+
|`--repo-root <path>`|`process.cwd()`| Repository root when invoking from a neutral cwd. |
326
+
|`--sut-account <id>`|`sut`| Temporary account id inside the QA gateway config. |
327
+
|`--provider-mode <mode>`|`live-frontier`|`mock-openai` or `live-frontier` (legacy `live-openai` still works). |
0 commit comments