QA: keep qa-lab out of packaged installs

This commit is contained in:
Gustavo Madeira Santana
2026-04-14 14:16:04 -04:00
parent ff1c6298db
commit d67266c7e0
5 changed files with 7 additions and 7 deletions

View File

@@ -67,8 +67,8 @@ These commands sit beside the main test suites when you need QA-lab realism:
- Starts the Docker-backed QA site for operator-style QA work.
- `pnpm openclaw qa matrix`
- Runs the Matrix live QA lane against a disposable Docker-backed Tuwunel homeserver.
- Packaged OpenClaw installs require the optional Matrix runner plugin first:
`openclaw plugins install @openclaw/qa-matrix`.
- This QA host is repo/dev-only today. Packaged OpenClaw installs do not ship
`qa-lab`, so they do not expose `openclaw qa`.
- Repo checkouts can link the in-tree plugin directly:
`openclaw plugins install -l ./extensions/qa-matrix`.
- Provisions three temporary Matrix users (`driver`, `sut`, `observer`) plus one private room, then starts a QA gateway child with the real Matrix plugin as the SUT transport.

View File

@@ -31,6 +31,7 @@
"!dist/plugin-sdk/.tsbuildinfo",
"!dist/extensions/qa-channel/**",
"dist/extensions/qa-channel/runtime-api.js",
"!dist/extensions/qa-lab/**",
"!dist/extensions/qa-matrix/**",
"docs/",
"!docs/.generated/**",
@@ -1230,8 +1231,6 @@
"plugin-sdk:sync-exports": "node scripts/sync-plugin-sdk-exports.mjs",
"plugin-sdk:usage": "node --import tsx scripts/analyze-plugin-sdk-usage.ts",
"plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
"qa-runners:check": "node --import tsx scripts/generate-qa-runner-catalog.ts --check",
"qa-runners:gen": "node --import tsx scripts/generate-qa-runner-catalog.ts --write",
"postinstall": "node scripts/postinstall-bundled-plugins.mjs",
"prepack": "node --import tsx scripts/openclaw-prepack.ts",
"prepare": "command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0",
@@ -1245,6 +1244,8 @@
"proxy:install-ca": "node --import tsx scripts/proxy-install-ca.mjs",
"proxy:run": "node scripts/run-node.mjs proxy run",
"proxy:start": "node scripts/run-node.mjs proxy start",
"qa-runners:check": "node --import tsx scripts/generate-qa-runner-catalog.ts --check",
"qa-runners:gen": "node --import tsx scripts/generate-qa-runner-catalog.ts --write",
"qa:e2e": "node --import tsx scripts/qa-e2e.ts",
"qa:lab:build": "vite build --config extensions/qa-lab/web/vite.config.ts",
"qa:lab:ui": "pnpm openclaw qa ui",

View File

@@ -23,7 +23,6 @@
"dist/extensions/nostr/runtime-api.js",
"dist/extensions/ollama/runtime-api.js",
"dist/extensions/open-prose/runtime-api.js",
"dist/extensions/qa-lab/runtime-api.js",
"dist/extensions/qqbot/runtime-api.js",
"dist/extensions/signal/runtime-api.js",
"dist/extensions/slack/runtime-api.js",

View File

@@ -135,8 +135,8 @@ describe("bundled plugin metadata", () => {
expect(BUNDLED_RUNTIME_SIDECAR_PATHS).not.toContain(
"dist/extensions/qa-channel/runtime-api.js",
);
expect(BUNDLED_RUNTIME_SIDECAR_PATHS).not.toContain("dist/extensions/qa-lab/runtime-api.js");
expect(BUNDLED_RUNTIME_SIDECAR_PATHS).not.toContain("dist/extensions/qa-matrix/runtime-api.js");
expect(BUNDLED_RUNTIME_SIDECAR_PATHS).toContain("dist/extensions/qa-lab/runtime-api.js");
});
it("captures setup-entry metadata for bundled channel plugins", () => {

View File

@@ -2,7 +2,7 @@ import fs from "node:fs";
import path from "node:path";
import { listBundledPluginMetadata } from "./bundled-plugin-metadata.js";
const NON_PACKAGED_RUNTIME_SIDECAR_PLUGIN_DIRS = new Set(["qa-channel", "qa-matrix"]);
const NON_PACKAGED_RUNTIME_SIDECAR_PLUGIN_DIRS = new Set(["qa-channel", "qa-lab", "qa-matrix"]);
function buildBundledDistArtifactPath(dirName: string, artifact: string): string {
return ["dist", "extensions", dirName, artifact].join("/");