> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# QA चैनल

`qa-channel` स्वचालित OpenClaw QA के लिए bundled synthetic message transport है। यह production channel नहीं है - यह वास्तविक transports द्वारा उपयोग की जाने वाली उसी channel Plugin सीमा का अभ्यास कराने के लिए मौजूद है, जबकि state को deterministic और पूरी तरह inspectable रखता है।

## यह क्या करता है

* Slack-वर्ग target grammar:
  * `dm:<user>`
  * `channel:<room>`
  * `group:<room>`
  * `thread:<room>/<thread>`
* साझा `channel:` और `group:` conversations agents को group/channel room turns के रूप में दिखाई जाती हैं, इसलिए वे Discord, Slack, Telegram और समान transports द्वारा उपयोग की जाने वाली उसी visible-reply और message-tool routing policy का अभ्यास कराती हैं।
* inbound message injection, outbound transcript capture, thread creation, reactions, edits, deletes, और search/read actions के लिए HTTP-backed synthetic bus।
* Host-side self-check runner जो `.artifacts/qa-e2e/` में Markdown report लिखता है।

## Config

```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  "channels": {
    "qa-channel": {
      "baseUrl": "http://127.0.0.1:43123",
      "botUserId": "openclaw",
      "botDisplayName": "OpenClaw QA",
      "allowFrom": ["*"],
      "pollTimeoutMs": 1000
    }
  }
}
```

Account keys:

* `enabled` - इस account के लिए master toggle।
* `name` - वैकल्पिक display label।
* `baseUrl` - synthetic bus URL।
* `botUserId` - target grammar में उपयोग की जाने वाली Matrix-style bot user id।
* `botDisplayName` - outbound messages के लिए display name।
* `pollTimeoutMs` - long-poll wait window। 100 और 30000 के बीच integer।
* `allowFrom` - sender allowlist (user ids या `"*"`). Direct messages और
  allowlisted group policy दोनों इन synthetic sender ids का उपयोग करते हैं।
* `groupPolicy` - shared-room policy: `"open"` (default), `"allowlist"`, या
  `"disabled"`।
* `groupAllowFrom` - वैकल्पिक shared-room sender allowlist। `"allowlist"` के अंतर्गत
  omit होने पर, QA Channel `allowFrom` पर fallback करता है।
* `groups.<room>.requireMention` - किसी specific group/channel room में reply करने से पहले bot mention आवश्यक करें। `groups."*"` default set करता है।
* `defaultTo` - जब कोई target supplied न हो तो fallback target।
* `actions.messages` / `actions.reactions` / `actions.search` / `actions.threads` - per-action tool gating।

Top level पर multi-account keys:

* `accounts` - account id द्वारा keyed named per-account overrides का record।
* `defaultAccount` - multiple accounts configured होने पर preferred account id।

## Runners

Host-side self-check (`.artifacts/qa-e2e/` के अंतर्गत Markdown report लिखता है):

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm qa:e2e
```

यह `qa-lab` के माध्यम से route करता है, in-repo QA bus शुरू करता है, bundled `qa-channel` runtime slice boot करता है, और deterministic self-check चलाता है।

Full repo-backed scenario suite:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm openclaw qa suite
```

QA Gateway lane के विरुद्ध scenarios parallel में चलाता है। Scenarios, profiles, और provider modes के लिए [QA overview](/hi/concepts/qa-e2e-automation) देखें।

Docker-backed QA site (एक stack में Gateway + QA Lab debugger UI):

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm qa:lab:up
```

QA site build करता है, Docker-backed Gateway + QA Lab stack शुरू करता है, और QA Lab URL print करता है। वहां से आप scenarios चुन सकते हैं, model lane चुन सकते हैं, individual runs launch कर सकते हैं, और results live देख सकते हैं। QA Lab debugger shipped Control UI bundle से अलग है।

## Related

* [QA overview](/hi/concepts/qa-e2e-automation) - overall stack, transport adapters, scenario authoring
* [Matrix QA](/hi/concepts/qa-matrix) - example live-transport runner जो real channel drive करता है
* [Pairing](/hi/channels/pairing)
* [Groups](/hi/channels/groups)
* [Channels overview](/hi/channels)
