From 49ee3ba85a97211ce1fa47bfbd3cd295b7e2984d Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Sun, 10 May 2026 11:54:54 -0400 Subject: [PATCH] Source diff message query pattern (#26638) --- .../server/routes/instance/httpapi/public.ts | 1 - .../server/httpapi-query-schema-drift.test.ts | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/server/routes/instance/httpapi/public.ts b/packages/opencode/src/server/routes/instance/httpapi/public.ts index 1a294f84e7..612ff83aeb 100644 --- a/packages/opencode/src/server/routes/instance/httpapi/public.ts +++ b/packages/opencode/src/server/routes/instance/httpapi/public.ts @@ -62,7 +62,6 @@ const QueryParameterSchemas: Record = { "GET /experimental/session limit": { type: "number" }, "GET /session start": { type: "number" }, "GET /session limit": { type: "number" }, - "GET /session/{sessionID}/diff messageID": { type: "string", pattern: "^msg.*" }, "GET /session/{sessionID}/message limit": { type: "integer", minimum: 0, maximum: Number.MAX_SAFE_INTEGER }, "GET /api/session limit": { type: "number" }, "GET /api/session start": { type: "number" }, diff --git a/packages/opencode/test/server/httpapi-query-schema-drift.test.ts b/packages/opencode/test/server/httpapi-query-schema-drift.test.ts index bf24f90353..d8eb780646 100644 --- a/packages/opencode/test/server/httpapi-query-schema-drift.test.ts +++ b/packages/opencode/test/server/httpapi-query-schema-drift.test.ts @@ -75,6 +75,10 @@ const numericSdkQueryParams = [ { method: "get", path: "/api/session/:sessionID/message", name: "limit", schema: { type: "number" } }, ] satisfies Array<{ method: Method; path: string; name: string; schema: OpenApiSchema }> +const queryParamPatterns = [ + { method: "get", path: SessionPaths.diff, name: "messageID", pattern: "^msg" }, +] satisfies Array<{ method: Method; path: string; name: string; pattern: string }> + const pathParamPatterns = [ { method: "get", path: SessionPaths.get, name: "sessionID", pattern: "^ses" }, { method: "get", path: SessionPaths.message, name: "messageID", pattern: "^msg" }, @@ -169,6 +173,19 @@ describe("httpapi query schema drift", () => { }), ) + it.effect( + "OpenAPI query parameter patterns come from runtime schemas", + Effect.sync(() => { + const spec = OpenApi.fromApi(PublicApi) + for (const expected of queryParamPatterns) { + expect( + queryParameter(spec.paths[openApiPath(expected.path)]?.[expected.method], expected.name)?.schema, + `${expected.method.toUpperCase()} ${expected.path} ${expected.name}`, + ).toEqual({ type: "string", pattern: expected.pattern }) + } + }), + ) + it.effect( "OpenAPI workspace query params are declared by runtime query schemas", Effect.sync(() => {