From 04b7a4f11493efe44b291abe1a9eb2bb7b822f10 Mon Sep 17 00:00:00 2001 From: JUN Date: Thu, 1 Oct 2026 11:06:48 +0900 Subject: [PATCH 1/2] fix(xai): report a current Grok CLI version on the OAuth path xAI now answers Grok OAuth requests that report a client version below 1.0.13 with HTTP 426 ("Your Grok CLI version (0.2.93) is outdated"), so every SuperGrok OAuth request failed. Report 1.0.25, the current stable Grok CLI, in x-grok-client-version and the User-Agent. Carries #6339. Co-authored-by: unsafe9 <24631203+unsafe9@users.noreply.github.com> --- src/providers/xai-transport.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/providers/xai-transport.ts b/src/providers/xai-transport.ts index 76582b07298..cc96f67a75b 100644 --- a/src/providers/xai-transport.ts +++ b/src/providers/xai-transport.ts @@ -28,8 +28,8 @@ export function isXaiResponsesDestination(provider: Pick Date: Thu, 1 Oct 2026 11:05:49 +0900 Subject: [PATCH 2/2] test(xai): pin Grok compatibility header regression --- tests/providers/xai/xai-transport.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/providers/xai/xai-transport.test.ts b/tests/providers/xai/xai-transport.test.ts index 263a1c049df..9bfd8d34509 100644 --- a/tests/providers/xai/xai-transport.test.ts +++ b/tests/providers/xai/xai-transport.test.ts @@ -533,16 +533,16 @@ async function capture(authMode: "oauth" | "key", calls = 1) { } describe("xAI outbound compatibility headers", () => { - test("OAuth snapshot is exact", async () => { + test("OAuth snapshot pins Grok CLI compatibility to 1.0.25", async () => { const { effective, seen } = await capture("oauth"); expect(effective.baseUrl).toBe(XAI_GROK_CLI_BASE_URL); expect(lower(seen[0])).toEqual({ authorization: "Bearer oauth-token", "content-type": "application/json", - "user-agent": `opencodex-grok/${XAI_GROK_CLIENT_VERSION}`, + "user-agent": "opencodex-grok/1.0.25", "x-authenticateresponse": "authenticate-response", "x-grok-client-identifier": "opencodex", - "x-grok-client-version": XAI_GROK_CLIENT_VERSION, + "x-grok-client-version": "1.0.25", "x-grok-conv-id": deriveXaiConvId("codex-session-abc"), "x-grok-req-id": expect.stringMatching(UUID_V4), "x-grok-session-id": deriveXaiConvId("codex-session-abc"), @@ -557,7 +557,7 @@ describe("xAI outbound compatibility headers", () => { expect(lower(seen[0])).toEqual({ authorization: "Bearer xai-api-key", "content-type": "application/json", - "user-agent": `opencodex-grok/${XAI_GROK_CLIENT_VERSION}`, + "user-agent": "opencodex-grok/1.0.25", "x-grok-conv-id": deriveXaiConvId("codex-session-abc"), "x-grok-req-id": expect.stringMatching(UUID_V4), "x-grok-session-id": deriveXaiConvId("codex-session-abc"),