fix(qa): avoid touching operator state during private QA runs (#111446)

* fix(qa): isolate commands from operator state

* fix(qa): isolate runner discovery from operator state

* fix(qa): keep discovery scope internal
This commit is contained in:
Peter Steinberger
2026-07-19 09:52:21 -07:00
committed by GitHub
parent 197c4f5a04
commit a876451d8b
9 changed files with 193 additions and 88 deletions
+14
View File
@@ -189,6 +189,10 @@ describe("registerPreActionHooks", () => {
.action(() => {});
programLocal.command("completion").action(() => {});
programLocal.command("secrets").action(() => {});
programLocal
.command("qa")
.command("suite")
.action(() => {});
programLocal
.command("agents")
.command("list")
@@ -441,6 +445,16 @@ describe("registerPreActionHooks", () => {
expect(ensurePluginRegistryLoadedMock).not.toHaveBeenCalled();
});
it("keeps private QA commands isolated from operator config bootstrap", async () => {
await runPreAction({
parseArgv: ["qa", "suite"],
processArgv: ["node", "openclaw", "qa", "suite"],
});
expect(ensureConfigReadyMock).not.toHaveBeenCalled();
expect(ensurePluginRegistryLoadedMock).not.toHaveBeenCalled();
});
it("lets bare config own config validation and plugin loading", async () => {
await runPreAction({
parseArgv: ["config"],