From e583db63c602d8d21b4ebdcd119061571a2e40a9 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 28 Apr 2026 23:10:30 +0100 Subject: [PATCH] test(ci): stabilize release validation flakes --- src/cli/program/preaction.test.ts | 12 +++++++++++- src/infra/net/proxy/external-proxy.e2e.test.ts | 4 +++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/cli/program/preaction.test.ts b/src/cli/program/preaction.test.ts index 259d595bd3f..6be6d9c4840 100644 --- a/src/cli/program/preaction.test.ts +++ b/src/cli/program/preaction.test.ts @@ -431,6 +431,16 @@ describe("registerPreActionHooks", () => { expect(ensurePluginRegistryLoadedMock).not.toHaveBeenCalled(); }); + it("does not preload plugins for remote agent JSON output", async () => { + await runPreAction({ + parseArgv: ["agent"], + processArgv: ["node", "openclaw", "agent", "--message", "hi", "--json"], + }); + + expect(routeLogsToStderrMock).toHaveBeenCalledOnce(); + expect(ensurePluginRegistryLoadedMock).not.toHaveBeenCalled(); + }); + it("bypasses config guard for config validate", async () => { await runPreAction({ parseArgv: ["config", "validate"], @@ -475,7 +485,7 @@ describe("registerPreActionHooks", () => { await runPreAction({ parseArgv: ["agent"], - processArgv: ["node", "openclaw", "agent", "--message", "hi", "--json"], + processArgv: ["node", "openclaw", "agent", "--local", "--message", "hi", "--json"], }); expect(ensurePluginRegistryLoadedMock).toHaveBeenCalled(); diff --git a/src/infra/net/proxy/external-proxy.e2e.test.ts b/src/infra/net/proxy/external-proxy.e2e.test.ts index 601f3041558..966fb7f5013 100644 --- a/src/infra/net/proxy/external-proxy.e2e.test.ts +++ b/src/infra/net/proxy/external-proxy.e2e.test.ts @@ -4,6 +4,8 @@ import * as net from "node:net"; import { afterEach, describe, expect, it } from "vitest"; import { WebSocketServer } from "ws"; +const CHILD_PROCESS_TIMEOUT_MS = process.env.CI ? 30_000 : 10_000; + async function listenOnLoopback(server: Server): Promise { return new Promise((resolve, reject) => { server.once("error", reject); @@ -136,7 +138,7 @@ async function runNodeModule( const timeout = setTimeout(() => { child.kill("SIGKILL"); reject(new Error(`child process timed out\nstdout:\n${stdout}\nstderr:\n${stderr}`)); - }, 10_000); + }, CHILD_PROCESS_TIMEOUT_MS); child.on("error", (err) => { clearTimeout(timeout);