chore: polish qa lab follow-ups

This commit is contained in:
Peter Steinberger
2026-04-05 08:52:05 +01:00
parent bb60b53124
commit 17a324b0de
4 changed files with 52 additions and 4 deletions

6
.github/labeler.yml vendored
View File

@@ -69,6 +69,12 @@
- any-glob-to-any-file:
- "extensions/qa-channel/**"
- "docs/channels/qa-channel.md"
"extensions: qa-lab":
- changed-files:
- any-glob-to-any-file:
- "extensions/qa-lab/**"
- "docs/concepts/qa-e2e-automation.md"
- "docs/channels/qa-channel.md"
"channel: signal":
- changed-files:
- any-glob-to-any-file:

1
.gitignore vendored
View File

@@ -149,3 +149,4 @@ changelog/fragments/
test/fixtures/openclaw-vitest-unit-report.json
analysis/
.artifacts/qa-e2e/
extensions/qa-lab/web/dist/

View File

@@ -68,9 +68,19 @@ Current vertical slice:
pnpm qa:e2e
```
This 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/`.
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:
```bash
pnpm qa:lab:build
pnpm openclaw qa ui
```
That launches the private QA debugger at a local URL, separate from the
shipped Control UI bundle.
## Scope

View File

@@ -100,7 +100,7 @@ Discord, Teams, and similar channels.
## System overview
The system has five pieces.
The system has six pieces.
1. `qa-channel` plugin
@@ -144,6 +144,14 @@ The auto-fix worker should start outside the container. It needs direct repo
and GitHub access, clean worktree control, and better isolation from the
runtime under test.
6. `qa-lab` extension
- Bundled extension under `extensions/qa-lab`
- Owns the QA harness, Markdown report flow, and private debugger UI
- Registers hidden CLI entrypoints such as `openclaw qa run` and
`openclaw qa ui`
- Stays separate from the shipped Control UI bundle
## High-level flow
1. Start `qa-bus`.
@@ -222,6 +230,29 @@ That is enough to build a first QA controller for:
This should be Phase 0 because it de-risks the scenario protocol before the
full channel lands.
## `qa-lab` extension design
`qa-lab` is the private operator-facing half of this system.
Suggested package:
- `extensions/qa-lab/`
Suggested responsibilities:
- host the synthetic bus state machine
- host the scenario runner
- write Markdown reports
- serve a private debugger UI on a separate local server
- keep that UI entirely outside the shipped Control UI bundle
Suggested UI shape:
- left rail for conversations and threads
- center transcript pane
- right rail for event stream and report inspection
- bottom inject-composer for inbound QA traffic
## `qa-channel` plugin design
## Package layout