From 98b2a8d0b549c20b6184e2bff5af80fce397a2be Mon Sep 17 00:00:00 2001 From: Dotta Date: Sun, 23 Aug 2026 20:56:01 +0000 Subject: [PATCH] test: reconcile merged Runner D contracts Track the renumbered migration, deduplicate versioned runtime request types, and register the side-panel motion token. Co-Authored-By: Paperclip --- packages/db/src/client.test.ts | 4 ++-- ui/src/components/task-chat/motion-tokens.ts | 1 + .../task-chat/task-protocol-surfaces.test.ts | 14 ++++++++++---- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/db/src/client.test.ts b/packages/db/src/client.test.ts index 78a176aacda..1ceade4f269 100644 --- a/packages/db/src/client.test.ts +++ b/packages/db/src/client.test.ts @@ -1407,11 +1407,11 @@ describeEmbeddedPostgres("applyPendingMigrations", () => { ); it( - "replays migration 0228 when remote agent profiles already exist", + "replays migration 0229 when remote agent profiles already exist", async () => { const connectionString = await createTempDatabase(); await applyPendingMigrations(connectionString); - const hash = await migrationHash("0228_late_landau.sql"); + const hash = await migrationHash("0229_late_landau.sql"); const sql = postgres(connectionString, { max: 1, onnotice: () => {} }); try { await sql`DELETE FROM "drizzle"."__drizzle_migrations" WHERE "hash" = ${hash}`; diff --git a/ui/src/components/task-chat/motion-tokens.ts b/ui/src/components/task-chat/motion-tokens.ts index c6259c2f5ca..e2453d6a2f6 100644 --- a/ui/src/components/task-chat/motion-tokens.ts +++ b/ui/src/components/task-chat/motion-tokens.ts @@ -64,6 +64,7 @@ export const MOTION_TOKENS: MotionTokenDef[] = [ { name: "--motion-scroll-pill-enter", group: "States", kind: "time", min: 0, max: 1500, step: 10 }, { name: "--motion-scroll-pill-exit", group: "States", kind: "time", min: 0, max: 1500, step: 10 }, { name: "--motion-pane-glide", group: "States", kind: "time", min: 0, max: 1500, step: 10 }, + { name: "--motion-side-panel-tab", group: "States", kind: "time", min: 0, max: 1000, step: 10 }, ]; /** Common easing presets offered by the tweak panel's easing picker. */ diff --git a/ui/src/components/task-chat/task-protocol-surfaces.test.ts b/ui/src/components/task-chat/task-protocol-surfaces.test.ts index 124b94f1890..acc38d8106b 100644 --- a/ui/src/components/task-chat/task-protocol-surfaces.test.ts +++ b/ui/src/components/task-chat/task-protocol-surfaces.test.ts @@ -44,12 +44,18 @@ describe("Paperclip task protocol surface registry", () => { it("classifies both runtime request types and all issue-thread request kinds", () => { const requestSchema = schema("request.schema.json"); const alternatives = Array.isArray(requestSchema.oneOf) ? requestSchema.oneOf.map(record) : []; - const runtimeProperties = record(alternatives.find((candidate) => record(record(candidate.properties).requestKind).const === "runtime")?.properties); + const runtimeProperties = alternatives + .filter((candidate) => record(record(candidate.properties).requestKind).const === "runtime") + .map((candidate) => record(candidate.properties)); const issueProperties = record(alternatives.find((candidate) => record(record(candidate.properties).requestKind).const === "issue_thread")?.properties); - const expected = [ - ...enumStrings(record(runtimeProperties.type).enum).map((kind) => `runtime.${kind}`), + const expected = [...new Set([ + ...runtimeProperties.flatMap((properties) => { + const type = record(properties.type); + const kinds = typeof type.const === "string" ? [type.const] : enumStrings(type.enum); + return kinds.map((kind) => `runtime.${kind}`); + }), ...enumStrings(record(issueProperties.kind).enum).map((kind) => `issue_thread.${kind}`), - ].sort(); + ])].sort(); expect(Object.keys(TASK_PROTOCOL_REQUEST_SURFACE_REGISTRY).sort()).toEqual(expected); });