From 2fa86c6a42fc53d7f5384373e97434ca91d7cd4d Mon Sep 17 00:00:00 2001 From: Ayaan Zaidi Date: Mon, 18 May 2026 17:35:10 +0530 Subject: [PATCH] fix(mantis): point telegram proof skill at workflow command --- .../telegram-crabbox-e2e-proof/SKILL.md | 30 ++++++++++++------- ...is-telegram-desktop-proof-workflow.test.ts | 7 +++++ 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/.agents/skills/telegram-crabbox-e2e-proof/SKILL.md b/.agents/skills/telegram-crabbox-e2e-proof/SKILL.md index 62a483ab2d7..940e775e883 100644 --- a/.agents/skills/telegram-crabbox-e2e-proof/SKILL.md +++ b/.agents/skills/telegram-crabbox-e2e-proof/SKILL.md @@ -17,7 +17,8 @@ artifact bundle. The runner leases the shared burner account from Convex. Run from the OpenClaw repo and branch under test: ```bash -pnpm qa:telegram-user:crabbox -- start \ +proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}" +"$proof_cmd" start \ --tdlib-url http://artifacts.openclaw.ai/tdlib-v1.8.0-linux-x64.tgz \ --output-dir .artifacts/qa-e2e/telegram-user-crabbox/pr-review ``` @@ -39,7 +40,8 @@ For deterministic visual repros, put the exact mock-model reply in a file and pass it to `start`: ```bash -pnpm qa:telegram-user:crabbox -- start \ +proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}" +"$proof_cmd" start \ --tdlib-url http://artifacts.openclaw.ai/tdlib-v1.8.0-linux-x64.tgz \ --mock-response-file .artifacts/qa-e2e/telegram-user-crabbox/reply.txt \ --output-dir .artifacts/qa-e2e/telegram-user-crabbox/pr-review @@ -55,7 +57,8 @@ For visual proof, first send or identify a bottom marker message, then open the group/topic directly by message id: ```bash -pnpm qa:telegram-user:crabbox -- view \ +proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}" +"$proof_cmd" view \ --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \ --message-id ``` @@ -77,7 +80,8 @@ Bottom behavior matters: Send as the real Telegram user: ```bash -pnpm qa:telegram-user:crabbox -- send \ +proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}" +"$proof_cmd" send \ --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \ --text /status ``` @@ -87,7 +91,8 @@ For slash commands, omit the bot username; the runner targets the SUT bot. Run arbitrary commands on the Crabbox: ```bash -pnpm qa:telegram-user:crabbox -- run \ +proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}" +"$proof_cmd" run \ --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \ -- bash -lc 'source /tmp/openclaw-telegram-user-crabbox/env.sh && python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py transcript --limit 20 --json' ``` @@ -106,14 +111,16 @@ python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py probe --text '@{sut} Capture the current desktop without ending the session: ```bash -pnpm qa:telegram-user:crabbox -- screenshot \ +proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}" +"$proof_cmd" screenshot \ --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json ``` Check lease state and get the WebVNC command: ```bash -pnpm qa:telegram-user:crabbox -- status \ +proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}" +"$proof_cmd" status \ --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json ``` @@ -122,7 +129,8 @@ pnpm qa:telegram-user:crabbox -- status \ Always finish or explicitly keep the box: ```bash -pnpm qa:telegram-user:crabbox -- finish \ +proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}" +"$proof_cmd" finish \ --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \ --preview-crop telegram-window ``` @@ -150,7 +158,8 @@ Attach only the useful visual artifact to the PR unless logs are needed. The runner is GIF-only by default: ```bash -pnpm qa:telegram-user:crabbox -- publish \ +proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}" +"$proof_cmd" publish \ --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \ --pr \ --summary 'Telegram real-user Crabbox session motion GIF' @@ -189,7 +198,8 @@ experiments unless those artifacts are explicitly needed. For a fast one-shot check, use: ```bash -pnpm qa:telegram-user:crabbox -- --text /status +proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}" +"$proof_cmd" --text /status ``` This is a start/send/finish shortcut. Prefer the held session for PR review, diff --git a/test/scripts/mantis-telegram-desktop-proof-workflow.test.ts b/test/scripts/mantis-telegram-desktop-proof-workflow.test.ts index 25386a61660..8a1b65991d8 100644 --- a/test/scripts/mantis-telegram-desktop-proof-workflow.test.ts +++ b/test/scripts/mantis-telegram-desktop-proof-workflow.test.ts @@ -10,6 +10,7 @@ const PACKAGE_JSON = "package.json"; const WORKFLOW = ".github/workflows/mantis-telegram-desktop-proof.yml"; const LIVE_WORKFLOW = ".github/workflows/mantis-telegram-live.yml"; const PROMPT = ".github/codex/prompts/mantis-telegram-desktop-proof.md"; +const TELEGRAM_PROOF_SKILL = ".agents/skills/telegram-crabbox-e2e-proof/SKILL.md"; const DOCS = ["docs/help/testing.md", "docs/concepts/qa-e2e-automation.md"]; type WorkflowStep = { @@ -196,6 +197,12 @@ describe("Mantis Telegram Desktop proof workflow", () => { for (const doc of DOCS) { expect(readFileSync(doc, "utf8")).not.toContain("pnpm qa:telegram-user:crabbox"); } + expect(readFileSync(TELEGRAM_PROOF_SKILL, "utf8")).not.toContain( + "pnpm qa:telegram-user:crabbox", + ); + expect(readFileSync(TELEGRAM_PROOF_SKILL, "utf8")).toContain( + "OPENCLAW_TELEGRAM_USER_PROOF_CMD", + ); expect(readFileSync(PROOF_SCRIPT, "utf8")).not.toContain("pnpm qa:telegram-user:crabbox"); expect(readFileSync(CREDENTIAL_SCRIPT, "utf8")).toContain( 'const TELEGRAM_USER_QA_CREDENTIAL_KIND = "telegram-user";',