From 260b7b47a169e61dcf31d71295a194f19565b363 Mon Sep 17 00:00:00 2001 From: luvs01 <27862058+luvs01@users.noreply.github.com> Date: Mon, 10 Aug 2026 00:50:39 +0900 Subject: [PATCH 1/2] fix(responses): clear stripped service tier from logs --- src/server/responses/core.ts | 4 ++++ tests/service-tier-capability.test.ts | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/server/responses/core.ts b/src/server/responses/core.ts index 8e20f05640..6b5431022e 100644 --- a/src/server/responses/core.ts +++ b/src/server/responses/core.ts @@ -988,6 +988,10 @@ async function applyFinalRouteRequestNormalization(args: { parsed.options.serviceTier = tier; } applyServiceTierGate(route.provider, parsed._rawBody, parsed.options); + if (route.provider.adapter === "openai-responses" && route.provider.supportsServiceTier === false) { + logCtx.requestedServiceTier = undefined; + logCtx.requestedSpeedLabel = undefined; + } { const guidance = await multiAgentGuidanceText(parsed, { diff --git a/tests/service-tier-capability.test.ts b/tests/service-tier-capability.test.ts index 6c328b4f7e..f483510364 100644 --- a/tests/service-tier-capability.test.ts +++ b/tests/service-tier-capability.test.ts @@ -9,6 +9,7 @@ import { afterEach, describe, expect, test } from "bun:test"; import { providerConfigSeed, enrichProviderFromRegistry } from "../src/providers/derive"; import { getProviderRegistryEntry } from "../src/providers/registry"; +import type { RequestLogContext } from "../src/server/request-log"; import { applyServiceTierGate, handleResponses } from "../src/server/responses/core"; import type { OcxConfig, OcxProviderConfig } from "../src/types"; @@ -127,6 +128,30 @@ describe("the gate fires on the live handleResponses path", () => { expect("service_tier" in body).toBe(false); }); + test("DeepSeek clears a stripped caller tier from request logging", async () => { + const { bodies } = captureBody(); + const logCtx: RequestLogContext = { model: "", provider: "" }; + await handleResponses( + new Request("http://localhost/v1/responses", { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify({ + model: "deepseek/deepseek-v4-flash", + input: "ping", + stream: true, + service_tier: "priority", + }), + }), + { providers: { deepseek: deepseekProvider() } } as unknown as OcxConfig, + logCtx, + {}, + ); + + expect("service_tier" in (bodies[0] ?? {})).toBe(false); + expect(logCtx.requestedServiceTier).toBeUndefined(); + expect(logCtx.requestedSpeedLabel).toBeUndefined(); + }); + test("canonical OpenAI keeps fast-mode injection and removal", async () => { const on = await drive("openai-apikey", openAiKeyProvider(), "gpt-5.5", {}, true); expect(on.service_tier).toBe("priority"); From c444365786b0656ea7bfb30dddad99a39ad22bd9 Mon Sep 17 00:00:00 2001 From: luvs01 <27862058+luvs01@users.noreply.github.com> Date: Mon, 10 Aug 2026 09:32:25 +0900 Subject: [PATCH 2/2] test(responses): require forwarded tier request --- tests/service-tier-capability.test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/service-tier-capability.test.ts b/tests/service-tier-capability.test.ts index f483510364..cec418598d 100644 --- a/tests/service-tier-capability.test.ts +++ b/tests/service-tier-capability.test.ts @@ -147,7 +147,9 @@ describe("the gate fires on the live handleResponses path", () => { {}, ); - expect("service_tier" in (bodies[0] ?? {})).toBe(false); + const upstreamBody = bodies[0]; + expect(upstreamBody).toBeDefined(); + expect("service_tier" in upstreamBody!).toBe(false); expect(logCtx.requestedServiceTier).toBeUndefined(); expect(logCtx.requestedSpeedLabel).toBeUndefined(); });