From b8c44bfc82847e8ec06147980c53d7a9724dd140 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 28 Apr 2026 05:31:56 +0100 Subject: [PATCH] fix: restore main ci and speed tests --- .../Sources/OpenClawProtocol/GatewayModels.swift | 14 +++++++++++++- .../Sources/OpenClawProtocol/GatewayModels.swift | 14 +++++++++++++- extensions/browser/src/browser/cdp.test.ts | 2 +- .../src/browser/client-fetch.loopback-auth.test.ts | 2 +- ...pw-session.create-page.navigation-guard.test.ts | 2 +- .../pw-tools-core.snapshot.navigate-guard.test.ts | 2 +- .../server-context.existing-session.test.ts | 2 +- extensions/browser/src/sdk-config.ts | 12 ++++++------ .../test-support/browser-security.mock.ts | 6 +++--- extensions/diagnostics-prometheus/src/service.ts | 3 +++ test/vitest/vitest.unit-fast-paths.mjs | 10 ++++++++++ 11 files changed, 53 insertions(+), 16 deletions(-) rename extensions/browser/{ => src}/test-support/browser-security.mock.ts (70%) diff --git a/apps/macos/Sources/OpenClawProtocol/GatewayModels.swift b/apps/macos/Sources/OpenClawProtocol/GatewayModels.swift index 0c3304d864f..504737e23e4 100644 --- a/apps/macos/Sources/OpenClawProtocol/GatewayModels.swift +++ b/apps/macos/Sources/OpenClawProtocol/GatewayModels.swift @@ -3185,7 +3185,19 @@ public struct ModelChoice: Codable, Sendable { } } -public struct ModelsListParams: Codable, Sendable {} +public struct ModelsListParams: Codable, Sendable { + public let view: AnyCodable? + + public init( + view: AnyCodable?) + { + self.view = view + } + + private enum CodingKeys: String, CodingKey { + case view + } +} public struct ModelsListResult: Codable, Sendable { public let models: [ModelChoice] diff --git a/apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift b/apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift index 0c3304d864f..504737e23e4 100644 --- a/apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift +++ b/apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift @@ -3185,7 +3185,19 @@ public struct ModelChoice: Codable, Sendable { } } -public struct ModelsListParams: Codable, Sendable {} +public struct ModelsListParams: Codable, Sendable { + public let view: AnyCodable? + + public init( + view: AnyCodable?) + { + self.view = view + } + + private enum CodingKeys: String, CodingKey { + case view + } +} public struct ModelsListResult: Codable, Sendable { public let models: [ModelChoice] diff --git a/extensions/browser/src/browser/cdp.test.ts b/extensions/browser/src/browser/cdp.test.ts index dc3972d9138..e6f33557b13 100644 --- a/extensions/browser/src/browser/cdp.test.ts +++ b/extensions/browser/src/browser/cdp.test.ts @@ -5,7 +5,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { type WebSocket, WebSocketServer } from "ws"; import { SsrFBlockedError } from "../infra/net/ssrf.js"; import { rawDataToString } from "../infra/ws.js"; -import "../../test-support/browser-security.mock.js"; +import "../test-support/browser-security.mock.js"; import { isDirectCdpWebSocketEndpoint, isWebSocketUrl, diff --git a/extensions/browser/src/browser/client-fetch.loopback-auth.test.ts b/extensions/browser/src/browser/client-fetch.loopback-auth.test.ts index 3289601078e..4bc6e8300fe 100644 --- a/extensions/browser/src/browser/client-fetch.loopback-auth.test.ts +++ b/extensions/browser/src/browser/client-fetch.loopback-auth.test.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -import "../../test-support/browser-security.mock.js"; +import "../test-support/browser-security.mock.js"; import type { OpenClawConfig } from "../config/config.js"; import type { BrowserDispatchResponse } from "./routes/dispatcher.js"; diff --git a/extensions/browser/src/browser/pw-session.create-page.navigation-guard.test.ts b/extensions/browser/src/browser/pw-session.create-page.navigation-guard.test.ts index e52d4bf3b37..19e9f0621ad 100644 --- a/extensions/browser/src/browser/pw-session.create-page.navigation-guard.test.ts +++ b/extensions/browser/src/browser/pw-session.create-page.navigation-guard.test.ts @@ -1,7 +1,7 @@ import { chromium } from "playwright-core"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { SsrFBlockedError } from "../infra/net/ssrf.js"; -import "../../test-support/browser-security.mock.js"; +import "../test-support/browser-security.mock.js"; import * as chromeModule from "./chrome.js"; import { BrowserTabNotFoundError } from "./errors.js"; import { InvalidBrowserNavigationUrlError } from "./navigation-guard.js"; diff --git a/extensions/browser/src/browser/pw-tools-core.snapshot.navigate-guard.test.ts b/extensions/browser/src/browser/pw-tools-core.snapshot.navigate-guard.test.ts index 8076c2d52bd..546e459ad23 100644 --- a/extensions/browser/src/browser/pw-tools-core.snapshot.navigate-guard.test.ts +++ b/extensions/browser/src/browser/pw-tools-core.snapshot.navigate-guard.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { SsrFBlockedError } from "../infra/net/ssrf.js"; -import "../../test-support/browser-security.mock.js"; +import "../test-support/browser-security.mock.js"; import { InvalidBrowserNavigationUrlError } from "./navigation-guard.js"; import { getPwToolsCoreSessionMocks, diff --git a/extensions/browser/src/browser/server-context.existing-session.test.ts b/extensions/browser/src/browser/server-context.existing-session.test.ts index 007821d0c85..1e476dc585b 100644 --- a/extensions/browser/src/browser/server-context.existing-session.test.ts +++ b/extensions/browser/src/browser/server-context.existing-session.test.ts @@ -1,6 +1,6 @@ import fs from "node:fs"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -import "../../test-support/browser-security.mock.js"; +import "../test-support/browser-security.mock.js"; import type { BrowserServerState } from "./server-context.js"; const chromeMcpMock = vi.hoisted(() => ({ diff --git a/extensions/browser/src/sdk-config.ts b/extensions/browser/src/sdk-config.ts index 0123fb597d2..f41d11d6f6b 100644 --- a/extensions/browser/src/sdk-config.ts +++ b/extensions/browser/src/sdk-config.ts @@ -3,12 +3,12 @@ import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/text-runti export { getRuntimeConfig, getRuntimeConfigSnapshot, - replaceConfigFile, -} from "openclaw/plugin-sdk/config-runtime"; -export type { - BrowserConfig, - BrowserProfileConfig, - OpenClawConfig, +} from "openclaw/plugin-sdk/runtime-config-snapshot"; +export { replaceConfigFile } from "openclaw/plugin-sdk/config-mutation"; +export { + type BrowserConfig, + type BrowserProfileConfig, + type OpenClawConfig, } from "openclaw/plugin-sdk/config-types"; export { normalizePluginsConfig, diff --git a/extensions/browser/test-support/browser-security.mock.ts b/extensions/browser/src/test-support/browser-security.mock.ts similarity index 70% rename from extensions/browser/test-support/browser-security.mock.ts rename to extensions/browser/src/test-support/browser-security.mock.ts index 7f0bd6e20d1..e62e58e1fb4 100644 --- a/extensions/browser/test-support/browser-security.mock.ts +++ b/extensions/browser/src/test-support/browser-security.mock.ts @@ -1,8 +1,8 @@ import { vi } from "vitest"; -vi.mock("../src/sdk-security-runtime.js", async () => { - const actual = await vi.importActual( - "../src/sdk-security-runtime.js", +vi.mock("../sdk-security-runtime.js", async () => { + const actual = await vi.importActual( + "../sdk-security-runtime.js", ); const lookupFn = async (_hostname: string, options?: { all?: boolean }) => { const result = { address: "93.184.216.34", family: 4 }; diff --git a/extensions/diagnostics-prometheus/src/service.ts b/extensions/diagnostics-prometheus/src/service.ts index 3b2010f1bb0..3605a4a3e4c 100644 --- a/extensions/diagnostics-prometheus/src/service.ts +++ b/extensions/diagnostics-prometheus/src/service.ts @@ -599,6 +599,9 @@ function recordDiagnosticEvent( }, ); return; + case "diagnostic.heartbeat": + case "diagnostic.liveness.warning": + return; case "telemetry.exporter": store.counter("openclaw_telemetry_exporter_total", "Telemetry exporter lifecycle events.", { exporter: lowCardinalityLabel(evt.exporter), diff --git a/test/vitest/vitest.unit-fast-paths.mjs b/test/vitest/vitest.unit-fast-paths.mjs index 9e82a6e7192..3db65c10300 100644 --- a/test/vitest/vitest.unit-fast-paths.mjs +++ b/test/vitest/vitest.unit-fast-paths.mjs @@ -79,6 +79,8 @@ export const forcedUnitFastTestFiles = [ "src/crestodian/rescue-message.test.ts", "src/crestodian/tui-backend.test.ts", "src/flows/channel-setup.test.ts", + "src/flows/channel-setup.status.test.ts", + "src/flows/provider-flow.test.ts", "src/context-engine/context-engine.test.ts", "src/canvas-host/server.state-dir.test.ts", "src/docs/clawhub-plugin-docs.test.ts", @@ -89,6 +91,7 @@ export const forcedUnitFastTestFiles = [ "src/entry.compile-cache.test.ts", "src/entry.test.ts", "src/i18n/registry.test.ts", + "src/image-generation/openai-compatible-image-provider.test.ts", "src/install-sh-version.test.ts", "src/logger.test.ts", "src/library.test.ts", @@ -101,8 +104,10 @@ export const forcedUnitFastTestFiles = [ "src/memory-host-sdk/host/session-files.test.ts", "src/music-generation/runtime.test.ts", "src/mcp/channel-server.shutdown-unhandled-rejection.test.ts", + "src/node-host/runner.credentials.test.ts", "src/node-host/invoke-system-run-plan.test.ts", "src/node-host/invoke-system-run.test.ts", + "src/pairing/pairing-challenge.test.ts", "src/pairing/allow-from-store-read.test.ts", "src/pairing/pairing-store.test.ts", "src/pairing/setup-code.test.ts", @@ -110,7 +115,12 @@ export const forcedUnitFastTestFiles = [ "src/plugin-sdk/memory-host-events.test.ts", "src/proxy-capture/runtime.test.ts", "src/proxy-capture/store.sqlite.test.ts", + "src/realtime-voice/agent-consult-runtime.test.ts", + "src/realtime-voice/session-runtime.test.ts", + "src/security/audit-channel-dm-policy.test.ts", "src/security/audit-exec-surface.test.ts", + "src/security/audit-extra.sync.test.ts", + "src/security/audit-gateway-exposure.test.ts", "src/security/audit-extra.async.test.ts", "src/security/audit-trust-model.test.ts", "src/security/dm-policy-shared.test.ts",