From d67266c7e0ae5b0bea3bb04b6e405d0187deaa29 Mon Sep 17 00:00:00 2001 From: Gustavo Madeira Santana Date: Tue, 14 Apr 2026 14:16:04 -0400 Subject: [PATCH] QA: keep qa-lab out of packaged installs --- docs/help/testing.md | 4 ++-- package.json | 5 +++-- scripts/lib/bundled-runtime-sidecar-paths.json | 1 - src/plugins/bundled-plugin-metadata.test.ts | 2 +- src/plugins/runtime-sidecar-paths-baseline.ts | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/help/testing.md b/docs/help/testing.md index c3d5ce7cced..68e597dc060 100644 --- a/docs/help/testing.md +++ b/docs/help/testing.md @@ -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. diff --git a/package.json b/package.json index 85b44b51948..3177e357935 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/scripts/lib/bundled-runtime-sidecar-paths.json b/scripts/lib/bundled-runtime-sidecar-paths.json index be9a497ad8e..9d4e3264a5a 100644 --- a/scripts/lib/bundled-runtime-sidecar-paths.json +++ b/scripts/lib/bundled-runtime-sidecar-paths.json @@ -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", diff --git a/src/plugins/bundled-plugin-metadata.test.ts b/src/plugins/bundled-plugin-metadata.test.ts index 6a936ea0256..9bbbb92693a 100644 --- a/src/plugins/bundled-plugin-metadata.test.ts +++ b/src/plugins/bundled-plugin-metadata.test.ts @@ -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", () => { diff --git a/src/plugins/runtime-sidecar-paths-baseline.ts b/src/plugins/runtime-sidecar-paths-baseline.ts index 140fc027baf..d1daf2233b0 100644 --- a/src/plugins/runtime-sidecar-paths-baseline.ts +++ b/src/plugins/runtime-sidecar-paths-baseline.ts @@ -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("/");