From bad449301ffccf489b50e8ca3f42633f4238e5ab Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Mon, 8 Jun 2026 20:02:30 +0200 Subject: [PATCH] test(release): align kitchen sink rpc descriptors --- scripts/e2e/kitchen-sink-rpc-walk.mjs | 10 ++++++++-- test/scripts/kitchen-sink-rpc-walk.test.ts | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/scripts/e2e/kitchen-sink-rpc-walk.mjs b/scripts/e2e/kitchen-sink-rpc-walk.mjs index 49e4ecb1c384..4d4e700d6889 100644 --- a/scripts/e2e/kitchen-sink-rpc-walk.mjs +++ b/scripts/e2e/kitchen-sink-rpc-walk.mjs @@ -1366,13 +1366,17 @@ export function assertCreatedKitchenSinkSession(payload, expectedKey = SESSION_K return created; } -export function assertKitchenSinkUiDescriptors(payload) { +export function assertKitchenSinkUiDescriptors(payload, options = {}) { + const expectDescriptor = options.expectDescriptor !== false; const descriptorPayload = assertObjectPayload(payload, "plugins.uiDescriptors"); if (descriptorPayload.ok !== true || !Array.isArray(descriptorPayload.descriptors)) { throw new Error( `plugins.uiDescriptors returned invalid payload: ${boundedJsonPreview(payload)}`, ); } + if (!expectDescriptor) { + return undefined; + } const descriptor = descriptorPayload.descriptors.find((entry) => entry?.pluginId === PLUGIN_ID); if (!descriptor) { throw new Error( @@ -2171,7 +2175,9 @@ export async function main() { assertTtsProviderCoverage(ttsStatus, "status"); const uiDescriptors = await retryRpcCall("plugins.uiDescriptors", {}, rpcOptions); - assertKitchenSinkUiDescriptors(uiDescriptors); + assertKitchenSinkUiDescriptors(uiDescriptors, { + expectDescriptor: env.OPENCLAW_KITCHEN_SINK_PERSONALITY !== "conformance", + }); const stability = await retryRpcCall("diagnostics.stability", {}, rpcOptions); assertDiagnosticStabilityClean(stability); await sampleInFlight?.catch(() => {}); diff --git a/test/scripts/kitchen-sink-rpc-walk.test.ts b/test/scripts/kitchen-sink-rpc-walk.test.ts index 91229a88949b..a575a380bd95 100644 --- a/test/scripts/kitchen-sink-rpc-walk.test.ts +++ b/test/scripts/kitchen-sink-rpc-walk.test.ts @@ -1033,6 +1033,22 @@ describe("kitchen-sink RPC command catalog assertions", () => { "plugins.uiDescriptors did not report Kitchen Sink descriptor", ); }); + + it("allows conformance mode to skip generated Kitchen Sink UI descriptors", () => { + expect(() => + assertKitchenSinkUiDescriptors( + { + ok: true, + descriptors: [], + }, + { expectDescriptor: false }, + ), + ).not.toThrow(); + + expect(() => assertKitchenSinkUiDescriptors({}, { expectDescriptor: false })).toThrow( + "plugins.uiDescriptors returned invalid payload", + ); + }); }); describe("kitchen-sink RPC diagnostics assertions", () => {