mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 13:10:43 +00:00
fix: stabilize release validation lanes
This commit is contained in:
@@ -20,7 +20,7 @@ export {
|
||||
searchQaBusMessages,
|
||||
sendQaBusMessage,
|
||||
setQaChannelRuntime,
|
||||
} from "@openclaw/qa-channel/api.js";
|
||||
} from "openclaw/plugin-sdk/qa-channel";
|
||||
export type {
|
||||
QaBusAttachment,
|
||||
QaBusConversation,
|
||||
|
||||
@@ -79,6 +79,9 @@ export default definePluginEntry({
|
||||
name: "OpenClaw Kitchen Sink",
|
||||
channels: ["kitchen-sink-channel"],
|
||||
providers: ["kitchen-sink-provider"],
|
||||
contracts: {
|
||||
tools: ["kitchen-sink-tool"],
|
||||
},
|
||||
configSchema: {
|
||||
type: "object",
|
||||
properties: {},
|
||||
|
||||
@@ -1866,6 +1866,20 @@ async function runInstalledModelsSet(params) {
|
||||
});
|
||||
}
|
||||
if (typeof params.providerConfig.timeoutSeconds === "number") {
|
||||
await runInstalledCli({
|
||||
cliPath: params.cliPath,
|
||||
args: [
|
||||
"config",
|
||||
"set",
|
||||
`models.providers.${params.providerConfig.extensionId}.models`,
|
||||
"[]",
|
||||
"--strict-json",
|
||||
],
|
||||
cwd: params.cwd,
|
||||
env: params.env,
|
||||
logPath: params.logPath,
|
||||
timeoutMs: 2 * 60 * 1000,
|
||||
});
|
||||
if (typeof params.providerConfig.baseUrl === "string") {
|
||||
await runInstalledCli({
|
||||
cliPath: params.cliPath,
|
||||
@@ -2690,6 +2704,19 @@ async function runModelsSet(params) {
|
||||
});
|
||||
}
|
||||
if (typeof params.providerConfig.timeoutSeconds === "number") {
|
||||
await runOpenClaw({
|
||||
lane: params.lane,
|
||||
env: params.env,
|
||||
args: [
|
||||
"config",
|
||||
"set",
|
||||
`models.providers.${params.providerConfig.extensionId}.models`,
|
||||
"[]",
|
||||
"--strict-json",
|
||||
],
|
||||
logPath: params.logPath,
|
||||
timeoutMs: 2 * 60 * 1000,
|
||||
});
|
||||
if (typeof params.providerConfig.baseUrl === "string") {
|
||||
await runOpenClaw({
|
||||
lane: params.lane,
|
||||
|
||||
@@ -4,7 +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;
|
||||
const CHILD_PROCESS_TIMEOUT_MS = process.env.CI ? 45_000 : 15_000;
|
||||
const PROBE_TIMEOUT_MS = process.env.CI ? 15_000 : 5_000;
|
||||
|
||||
async function listenOnLoopback(server: Server): Promise<number> {
|
||||
return new Promise((resolve, reject) => {
|
||||
@@ -216,7 +217,7 @@ describe("SSRF external proxy routing", () => {
|
||||
resolve({ status: response.statusCode, body });
|
||||
});
|
||||
});
|
||||
req.setTimeout(5000, () => {
|
||||
req.setTimeout(${PROBE_TIMEOUT_MS}, () => {
|
||||
req.destroy(new Error("node:http request timed out"));
|
||||
});
|
||||
req.on("error", reject);
|
||||
@@ -238,7 +239,7 @@ describe("SSRF external proxy routing", () => {
|
||||
response.resume();
|
||||
response.on("end", resolve);
|
||||
});
|
||||
req.setTimeout(5000, () => {
|
||||
req.setTimeout(${PROBE_TIMEOUT_MS}, () => {
|
||||
req.destroy(new Error("node:https request timed out"));
|
||||
});
|
||||
req.on("error", reject);
|
||||
@@ -247,7 +248,7 @@ describe("SSRF external proxy routing", () => {
|
||||
|
||||
async function websocketProbe(url) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const ws = new WebSocket(url, { handshakeTimeout: 5000 });
|
||||
const ws = new WebSocket(url, { handshakeTimeout: ${PROBE_TIMEOUT_MS} });
|
||||
ws.once("open", () => {
|
||||
ws.close();
|
||||
reject(new Error("proxied websocket unexpectedly opened"));
|
||||
@@ -259,7 +260,7 @@ describe("SSRF external proxy routing", () => {
|
||||
async function gatewayLoopbackBypassProbe(url) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const ws = dangerouslyBypassManagedProxyForGatewayLoopbackControlPlane(url, () =>
|
||||
new WebSocket(url, { handshakeTimeout: 5000 }),
|
||||
new WebSocket(url, { handshakeTimeout: ${PROBE_TIMEOUT_MS} }),
|
||||
);
|
||||
ws.once("open", () => {
|
||||
ws.close();
|
||||
@@ -275,7 +276,7 @@ describe("SSRF external proxy routing", () => {
|
||||
}
|
||||
try {
|
||||
const response = await undiciFetch(process.env.OPENCLAW_TEST_TARGET_URL, {
|
||||
signal: AbortSignal.timeout(5000),
|
||||
signal: AbortSignal.timeout(${PROBE_TIMEOUT_MS}),
|
||||
});
|
||||
const body = await response.text();
|
||||
const nodeHttp = await nodeHttpGet(process.env.OPENCLAW_TEST_NODE_HTTP_TARGET_URL);
|
||||
|
||||
Reference in New Issue
Block a user