From 0c239ad7311d579c90f0cbb80ccbab43020c18f7 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-sync[bot]" Date: Fri, 24 Apr 2026 02:51:08 +0000 Subject: [PATCH] chore(sync): mirror docs from openclaw/openclaw@3a18801343f1fe9cee6cfeadaeafd80cd3f7e9b8 --- .openclaw-sync/source.json | 4 ++-- docs/concepts/qa-e2e-automation.md | 26 ++++++++++++++++++++++---- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 6bf839aaa..e459ee871 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "d3f6783b16ecc10c67b101bf019ca4294453206a", - "syncedAt": "2026-04-24T02:42:06.531Z" + "sha": "3a18801343f1fe9cee6cfeadaeafd80cd3f7e9b8", + "syncedAt": "2026-04-24T02:49:33.049Z" } diff --git a/docs/concepts/qa-e2e-automation.md b/docs/concepts/qa-e2e-automation.md index af0b43e20..eb9d63adb 100644 --- a/docs/concepts/qa-e2e-automation.md +++ b/docs/concepts/qa-e2e-automation.md @@ -83,16 +83,34 @@ you want artifacts without a failing exit code. The Telegram report and summary include per-reply RTT from the driver message send request to the observed SUT reply, starting with the canary. +For a transport-real Discord smoke lane, run: + +```bash +pnpm openclaw qa discord +``` + +That lane targets one real private Discord guild channel with two bots: a +driver bot controlled by the harness and a SUT bot started by the child +OpenClaw gateway through the bundled Discord plugin. It requires +`OPENCLAW_QA_DISCORD_GUILD_ID`, `OPENCLAW_QA_DISCORD_CHANNEL_ID`, +`OPENCLAW_QA_DISCORD_DRIVER_BOT_TOKEN`, `OPENCLAW_QA_DISCORD_SUT_BOT_TOKEN`, +and `OPENCLAW_QA_DISCORD_SUT_APPLICATION_ID` when using env credentials. +The lane verifies channel mention handling and checks that the SUT bot has +registered the native `/help` command with Discord. +The command exits non-zero when any scenario fails. Use `--allow-failures` when +you want artifacts without a failing exit code. + Live transport lanes now share one smaller contract instead of each inventing their own scenario list shape: `qa-channel` remains the broad synthetic product-behavior suite and is not part of the live transport coverage matrix. -| Lane | Canary | Mention gating | Allowlist block | Top-level reply | Restart resume | Thread follow-up | Thread isolation | Reaction observation | Help command | -| -------- | ------ | -------------- | --------------- | --------------- | -------------- | ---------------- | ---------------- | -------------------- | ------------ | -| Matrix | x | x | x | x | x | x | x | x | | -| Telegram | x | | | | | | | | x | +| Lane | Canary | Mention gating | Allowlist block | Top-level reply | Restart resume | Thread follow-up | Thread isolation | Reaction observation | Help command | Native command registration | +| -------- | ------ | -------------- | --------------- | --------------- | -------------- | ---------------- | ---------------- | -------------------- | ------------ | --------------------------- | +| Matrix | x | x | x | x | x | x | x | x | | | +| Telegram | x | x | | | | | | | x | | +| Discord | x | x | | | | | | | | x | This keeps `qa-channel` as the broad product-behavior suite while Matrix, Telegram, and future live transports share one explicit transport-contract