qa: add UX Matrix evidence dashboard and runner plan#94273
qa: add UX Matrix evidence dashboard and runner plan#94273Solvely-Colin wants to merge 13 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a QA Lab “UX Matrix” script scenario that produces QA evidence plus a dedicated Evidence UI tab to inspect qa-evidence.json, declared artifacts, and UX Matrix producer context (matrix/scorecard/runner plans). This fits into the QA Lab extension by turning the UX Matrix proof producer into a first-class scenario + CI workflow artifact.
Changes:
- Add
scenario.execution.kind: scriptsupport in QA Lab, including importing producer-generatedqa-evidence.jsoninto suite evidence. - Add QA Lab web Evidence tab/UI + server endpoints to load evidence and serve declared artifacts + UX Matrix producer context.
- Add a dedicated GitHub Actions workflow to run the UX Matrix scenario and upload the evidence bundle.
Reviewed changes
Copilot reviewed 20 out of 21 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| qa/scenarios/ui/ux-matrix-evidence-dashboard.yaml | New script-backed QA scenario definition for the UX Matrix evidence producer. |
| qa/scenarios/index.yaml | Docs update to include script as a supported execution kind. |
| package.json | Adds ux:matrix script entry for running the producer directly. |
| extensions/qa-lab/web/src/ui-render.ts | Adds Evidence tab rendering, filtering, matrix mini-grid, and artifact drilldowns. |
| extensions/qa-lab/web/src/ui-render.test.ts | New tests covering Evidence UI behavior (tones, links vs proof gaps, deferred media). |
| extensions/qa-lab/web/src/styles.css | Styles for Evidence view layout, matrix grid, and artifact cards. |
| extensions/qa-lab/web/src/app.ts | Adds Evidence tab state, URL bootstrapping, and /api/evidence loading actions. |
| extensions/qa-lab/src/test-file-scenario-runner.ts | Adds script execution kind, runs node+tsx scripts, and imports producer evidence. |
| extensions/qa-lab/src/test-file-scenario-runner.test.ts | Tests for script execution, producer evidence import, and failure propagation. |
| extensions/qa-lab/src/suite-launch.runtime.test.ts | Ensures suite routes script scenarios to the native test-file runner path. |
| extensions/qa-lab/src/scorecard-taxonomy.ts | Extends native coverage evidence kind to include script. |
| extensions/qa-lab/src/scenario-catalog.ts | Schema support for execution.kind: script and optional args in scenario YAML. |
| extensions/qa-lab/src/scenario-catalog.test.ts | Adds coverage for loading the new script scenario from YAML. |
| extensions/qa-lab/src/lab-server.ts | Adds /api/evidence and /api/evidence/artifact endpoints for the Evidence UI. |
| extensions/qa-lab/src/evidence-summary.ts | Adds buildScriptEvidenceSummary for script scenario fallback evidence entries. |
| extensions/qa-lab/src/evidence-gallery.ts | New evidence gallery model builder + artifact resolution/containment rules + UX Matrix context detection. |
| extensions/qa-lab/src/evidence-gallery.test.ts | Tests for gallery model building, UX Matrix context discovery, and artifact access restrictions. |
| extensions/qa-lab/src/coverage-report.ts | Coverage report ordering updated to include script execution. |
| extensions/qa-lab/src/coverage-report.test.ts | Tests for script scenario match rendering and taxonomy fulfillment via script evidence. |
| .github/workflows/ux-matrix-qa.yml | New workflow to run the UX Matrix scenario and upload evidence artifacts. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8ac4664d16
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Closing this combined proof PR so the work can be split into smaller QA Lab layers per maintainer feedback. Keeping this PR as history for the original UX Matrix/evidence dashboard spike; follow-up PRs will separate script execution, evidence gallery UI, UX Matrix scenario, and any CI wiring. |
Summary
What problem does this PR solve?
qa-evidence.jsonand suite artifact directories so reviewers can inspect entries, coverage IDs, screenshots, GIF/video, logs, machine-validation files, scorecards, release ledgers, and runner plans.UX Matrix QAworkflow that runs the QA Lab scenario on existing OpenClaw runner infrastructure and uploads the evidence bundle.Why does this matter now?
What is the intended outcome?
pnpm openclaw qa suite --scenario ux-matrix-evidence-dashboardproduces a QA evidence summary plus UX Matrix artifacts.What is intentionally out of scope?
CHANGELOG.md.What does success look like?
qa-evidence.json.qa-evidence.jsonand stays responsive while showing the matrix and proof drilldowns.What should reviewers focus on?
qa-evidence.jsonimport/merge behavior is conservative and does not overclaim coverage.UX Matrix QAworkflow fits existing OpenClaw CI patterns.AI-assisted: yes, implemented with Codex. I understand the code path and kept the evidence/coverage distinction explicit.
Linked context
Which issue does this close?
Closes #
Which issues, PRs, or discussions are related?
Related #
Was this requested by a maintainer or owner?
taxonomy.yamlIDs, and whether the UI generation could work with QA evidence-formatted output.Real behavior proof (required for external PRs)
Behavior or issue addressed:
Real environment tested:
codex/ux-matrix-local-dashboard.8ac4664d162be1117487a2077c8e7a5220338888.Exact steps or command run after this patch:
pnpm openclaw qa suite --provider-mode mock-openai --scenario ux-matrix-evidence-dashboard --output-dir .artifacts/qa-e2e/ux-matrix-rebased-proof --concurrency 1 --fastpnpm ux:matrix -- --once --recording-ms 2000/Users/solvely/Documents/OpenClaw-baselines/worktrees/openclaw-ux-matrix-tool/.artifacts/ux-matrix/20260617T201115Z-8ac4664d16/qa-evidence.jsonEvidence after fix (screenshot, recording, terminal capture, console output, redacted runtime log, linked artifact, or copied live output):
.artifacts/qa-e2e/ux-matrix-rebased-proof/qa-suite-report.mdPassed: 1,Failed: 0.artifacts/qa-e2e/ux-matrix-rebased-proof/qa-evidence.jsonpass.artifacts/ux-matrix/20260617T201115Z-8ac4664d16/qa-evidence.json.artifacts/ux-matrix/20260617T201115Z-8ac4664d16/matrix.json.artifacts/ux-matrix/20260617T201115Z-8ac4664d16/scorecard.md.artifacts/ux-matrix/20260617T201115Z-8ac4664d16/surfaces/web-ui/stages/first-run/screenshot.png.artifacts/ux-matrix/20260617T201115Z-8ac4664d16/surfaces/web-ui/stages/first-run/recording.gif.artifacts/ux-matrix/20260617T201115Z-8ac4664d16/surfaces/web-ui/stages/first-run/recording.webm.artifacts/ux-matrix/20260617T201115Z-8ac4664d16/surfaces/web-ui/stages/gateway-connected-healthy/screenshot.png.artifacts/ux-matrix/20260617T201115Z-8ac4664d16/surfaces/web-ui/stages/gateway-connected-healthy/recording.gif.artifacts/ux-matrix/20260617T201115Z-8ac4664d16/surfaces/web-ui/stages/gateway-connected-healthy/recording.webm.artifacts/ux-matrix/20260617T201115Z-8ac4664d16/surfaces/cli/stages/20260617T201115Z-8ac4664d16passfalsepass: 4proof-gap: 131true4135131Observed result after fix:
What was not tested:
.github/workflows/ux-matrix-qa.ymlhas not run yet because the branch has not been pushed/opened as a PR.Proof limitations or environment constraints:
Before evidence (optional but encouraged):
Tests and validation
Which commands did you run?
pnpm openclaw qa suite --provider-mode mock-openai --scenario ux-matrix-evidence-dashboard --output-dir .artifacts/qa-e2e/ux-matrix-rebased-proof --concurrency 1 --fastpnpm ux:matrix -- --once --recording-ms 2000node scripts/run-vitest.mjs extensions/qa-lab/src/evidence-gallery.test.ts extensions/qa-lab/web/src/ui-render.test.ts extensions/qa-lab/src/scenario-catalog.test.ts extensions/qa-lab/src/coverage-report.test.ts extensions/qa-lab/src/test-file-scenario-runner.test.tspnpm qa:lab:buildnode scripts/run-tsgo.mjs -p tsconfig.extensions.json --incremental falsegit diff --checkWhat regression coverage was added or updated?
What failed before this fix, if known?
If no test was added, why not?
Risk checklist
Did user-visible behavior change? (
Yes/No)Yes. QA Lab gains an Evidence tab workflow for UX Matrix artifacts and a new UX Matrix scenario.
Did config, environment, or migration behavior change? (
Yes/No)No config or migration behavior change. A new GitHub Actions workflow was added.
Did security, auth, secrets, network, or tool execution behavior change? (
Yes/No)Yes, tool execution behavior changes in a bounded QA context: QA Lab can run a declared
execution.kind: scriptscenario and import its QA evidence artifacts. The UX Matrix producer redacts sensitive token-like values from logs and the workflow uses mock provider mode.What is the highest-risk area?
How is that risk mitigated?
proof-gap, coverage IDs, and runner plans, but no evidence entry link.Current review state
What is the next action?
.github/workflows/ux-matrix-qa.ymlrun on GitHub and attach/upload its generated artifact.What is still waiting on author, maintainer, CI, or external proof?
Which bot or reviewer comments were addressed?
/api/evidence/artifactto declared evidence artifacts plus narrow UX Matrix producer context files.ux:matrix --oncefailure exit code, missing Chromium-not-runnablelogs.txt, and background dashboard run unhandled rejection behavior.qa-evidence.json.