qa: keep qa-matrix source-only

Keep qa-matrix aligned with the repo-private QA policy instead of treating it
as a packaged or published plugin surface. This restores qa-lab to the
non-packaged bundle set and removes qa-matrix publish metadata.

Also tighten the QA packaging docs/example, add a changelog entry for the
split, and lock the non-packaged expectation in the bundled-plugin build-entry
test.
This commit is contained in:
Gustavo Madeira Santana
2026-04-14 14:46:22 -04:00
parent d67266c7e0
commit 7b68c2cf1b
5 changed files with 6 additions and 6 deletions

View File

@@ -8,6 +8,7 @@ Docs: https://docs.openclaw.ai
- Docs/showcase: add a scannable hero, complete section jump links, and a responsive video grid for community examples. (#48493) Thanks @jchopard69.
- Agents/local models: add `agents.defaults.localModelMode: "lean"` to drop heavyweight default tools like `browser`, `cron`, and `message`, reducing prompt size for weaker local-model setups without changing the normal path. Thanks @ImLukeF.
- QA/Matrix: split Matrix live QA into a source-linked `qa-matrix` runner and keep repo-private `qa-*` surfaces out of packaged and published builds. (#66723) Thanks @gumadeiras.
### Fixes

View File

@@ -197,7 +197,7 @@ Use `--link` to avoid copying a local directory (adds to `plugins.load.paths`):
openclaw plugins install -l ./my-plugin
```
Repo QA example:
Repo QA example (source-linked dev surface; not shipped in packaged installs):
```bash
openclaw plugins install -l ./extensions/qa-matrix

View File

@@ -29,10 +29,6 @@
},
"build": {
"openclawVersion": "2026.4.12"
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
}
}

View File

@@ -8,7 +8,7 @@ import {
import { shouldBuildBundledCluster } from "./optional-bundled-clusters.mjs";
const TOP_LEVEL_PUBLIC_SURFACE_EXTENSIONS = new Set([".ts", ".js", ".mts", ".cts", ".mjs", ".cjs"]);
const NON_PACKAGED_BUNDLED_PLUGIN_DIRS = new Set(["qa-channel", "qa-matrix"]);
const NON_PACKAGED_BUNDLED_PLUGIN_DIRS = new Set(["qa-channel", "qa-lab", "qa-matrix"]);
const toPosixPath = (value) => value.replaceAll("\\", "/");
function readBundledPluginPackageJson(packageJsonPath) {

View File

@@ -82,6 +82,9 @@ describe("bundled plugin build entries", () => {
expect(artifacts.some((artifact) => artifact.startsWith("dist/extensions/qa-lab/"))).toBe(
false,
);
expect(artifacts.some((artifact) => artifact.startsWith("dist/extensions/qa-matrix/"))).toBe(
false,
);
});
it("keeps bundled channel secret contracts on packed top-level sidecars", () => {