Files
openclaw/docs/channels/qa-channel.md
2026-04-06 17:47:17 +01:00

2.4 KiB

title, summary, read_when
title summary read_when
QA Channel Synthetic Slack-class channel plugin for deterministic OpenClaw QA scenarios
You are wiring the synthetic QA transport into a local or CI test run
You need the bundled qa-channel config surface
You are iterating on end-to-end QA automation

QA Channel

qa-channel is a bundled synthetic message transport for automated OpenClaw QA.

It is not a production channel. It exists to exercise the same channel plugin boundary used by real transports while keeping state deterministic and fully inspectable.

What it does today

  • Slack-class target grammar:
    • dm:<user>
    • channel:<room>
    • thread:<room>/<thread>
  • HTTP-backed synthetic bus for:
    • inbound message injection
    • outbound transcript capture
    • thread creation
    • reactions
    • edits
    • deletes
    • search and read actions
  • Bundled host-side self-check runner that writes a Markdown report

Config

{
  "channels": {
    "qa-channel": {
      "baseUrl": "http://127.0.0.1:43123",
      "botUserId": "openclaw",
      "botDisplayName": "OpenClaw QA",
      "allowFrom": ["*"],
      "pollTimeoutMs": 1000
    }
  }
}

Supported account keys:

  • baseUrl
  • botUserId
  • botDisplayName
  • pollTimeoutMs
  • allowFrom
  • defaultTo
  • actions.messages
  • actions.reactions
  • actions.search
  • actions.threads

Runner

Current vertical slice:

pnpm qa:e2e

This now routes through the bundled qa-lab extension. It starts the in-repo QA bus, boots the bundled qa-channel runtime slice, runs a deterministic self-check, and writes a Markdown report under .artifacts/qa-e2e/.

Private debugger UI:

pnpm qa:lab:up

That one command builds the QA site, starts the Docker-backed gateway + QA Lab stack, and prints the QA Lab URL. From that site you can pick scenarios, choose the model lane, launch individual runs, and watch results live.

Full repo-backed QA suite:

pnpm openclaw qa suite

That launches the private QA debugger at a local URL, separate from the shipped Control UI bundle.

Scope

Current scope is intentionally narrow:

  • bus + plugin transport
  • threaded routing grammar
  • channel-owned message actions
  • Markdown reporting
  • Docker-backed QA site with run controls

Follow-up work will add:

  • provider/model matrix execution
  • richer scenario discovery
  • OpenClaw-native orchestration later