From fdc047b9fe5fd183d360a022ec98d61570ae8349 Mon Sep 17 00:00:00 2001 From: Kevin Thomas Date: Tue, 8 Sep 2026 15:40:40 -0700 Subject: [PATCH] fix(coding-agent): default Prime Inference to GLM 5.3 --- .../.changes/prime-inference-glm-5-3-default.md | 1 + packages/coding-agent/src/core/model-resolver.ts | 2 +- .../src/modes/interactive/interactive-mode.ts | 2 +- .../test/interactive-mode-status.test.ts | 4 ++-- packages/coding-agent/test/model-resolver.test.ts | 14 +++++++++----- .../test/prime-inference-model-selection.test.ts | 6 +++--- .../4573-prime-inference-login-default.test.ts | 8 ++++---- 7 files changed, 21 insertions(+), 16 deletions(-) create mode 100644 packages/coding-agent/.changes/prime-inference-glm-5-3-default.md diff --git a/packages/coding-agent/.changes/prime-inference-glm-5-3-default.md b/packages/coding-agent/.changes/prime-inference-glm-5-3-default.md new file mode 100644 index 0000000000..f2417b1b3b --- /dev/null +++ b/packages/coding-agent/.changes/prime-inference-glm-5-3-default.md @@ -0,0 +1 @@ +- Changed the default Prime Inference model from GLM 5.2 to GLM 5.3. diff --git a/packages/coding-agent/src/core/model-resolver.ts b/packages/coding-agent/src/core/model-resolver.ts index 6e8404276a..21f0763ddd 100644 --- a/packages/coding-agent/src/core/model-resolver.ts +++ b/packages/coding-agent/src/core/model-resolver.ts @@ -14,7 +14,7 @@ import { isPrivatePrimeInferenceModel } from "./prime-inference-models.js"; const log = getLogger("coding-agent.model-resolver"); -export const PRIME_INFERENCE_DEFAULT_MODEL_ID = "z-ai/glm-5.2"; +export const PRIME_INFERENCE_DEFAULT_MODEL_ID = "z-ai/glm-5.3"; /** Default model IDs for each known provider */ export const defaultModelPerProvider: Record = { diff --git a/packages/coding-agent/src/modes/interactive/interactive-mode.ts b/packages/coding-agent/src/modes/interactive/interactive-mode.ts index b8e64ad565..c1e6dc58b1 100644 --- a/packages/coding-agent/src/modes/interactive/interactive-mode.ts +++ b/packages/coding-agent/src/modes/interactive/interactive-mode.ts @@ -8693,7 +8693,7 @@ export class InteractiveMode { ); } } else if (!selectedModel) { - this.showError("Prime Inference login succeeded, but the default GLM 5.2 model is unavailable."); + this.showError("Prime Inference login succeeded, but the default GLM 5.3 model is unavailable."); } return true; diff --git a/packages/coding-agent/test/interactive-mode-status.test.ts b/packages/coding-agent/test/interactive-mode-status.test.ts index 2ffdd91f7c..a013a0df67 100644 --- a/packages/coding-agent/test/interactive-mode-status.test.ts +++ b/packages/coding-agent/test/interactive-mode-status.test.ts @@ -4120,8 +4120,8 @@ describe("InteractiveMode post-login model preparation", () => { maxTokens: 128000, } as AgentConnectionModel; - test("persists GLM 5.2 before model selection after Prime Inference login", async () => { - const fallbackModel = { ...loginPrimeModel, id: "z-ai/glm-5.2", name: "GLM 5.2" }; + test("persists GLM 5.3 before model selection after Prime Inference login", async () => { + const fallbackModel = { ...loginPrimeModel, id: "z-ai/glm-5.3", name: "GLM 5.3" }; const flushSettings = vi.fn(async () => {}); const fakeThis = Object.create(InteractiveMode.prototype) as LoginHarness; fakeThis.invalidateConnectionModels = vi.fn(); diff --git a/packages/coding-agent/test/model-resolver.test.ts b/packages/coding-agent/test/model-resolver.test.ts index 1ba1588821..716ba2c13b 100644 --- a/packages/coding-agent/test/model-resolver.test.ts +++ b/packages/coding-agent/test/model-resolver.test.ts @@ -300,7 +300,7 @@ describe("default model selection", () => { test("openai defaults track current models", () => { expect(defaultModelPerProvider.openai).toBe("gpt-5.4"); expect(defaultModelPerProvider["openai-codex"]).toBe("gpt-5.5"); - expect(defaultModelPerProvider["prime-inference"]).toBe("z-ai/glm-5.2"); + expect(defaultModelPerProvider["prime-inference"]).toBe("z-ai/glm-5.3"); }); test("every per-provider default exists in the model catalog", () => { @@ -358,15 +358,15 @@ describe("default model selection", () => { expect(result.thinkingLevel).toBe("medium"); }); - test("findInitialModel prefers GLM 5.2 when Prime Inference is configured", async () => { + test("findInitialModel prefers GLM 5.3 when Prime Inference is configured", async () => { const anthropicModel: Model<"anthropic-messages"> = { ...mockModels[0], id: "claude-opus-4-7", name: "Claude Opus 4.7", }; const primeModel: Model<"anthropic-messages"> = { - id: "z-ai/glm-5.2", - name: "GLM 5.2", + id: "z-ai/glm-5.3", + name: "GLM 5.3", api: "anthropic-messages", provider: "prime-inference", baseUrl: "https://api.pinference.ai/api/v1", @@ -377,7 +377,11 @@ describe("default model selection", () => { maxTokens: 101376, }; const registry = { - refreshAvailableModels: async () => [anthropicModel, primeModel], + refreshAvailableModels: async () => [ + anthropicModel, + { ...primeModel, id: "z-ai/glm-5.2", name: "GLM 5.2" }, + primeModel, + ], } as unknown as Parameters[0]["modelRegistry"]; const result = await findInitialModel({ diff --git a/packages/coding-agent/test/prime-inference-model-selection.test.ts b/packages/coding-agent/test/prime-inference-model-selection.test.ts index 5f055336f6..db5eb72475 100644 --- a/packages/coding-agent/test/prime-inference-model-selection.test.ts +++ b/packages/coding-agent/test/prime-inference-model-selection.test.ts @@ -3,8 +3,8 @@ import { describe, expect, test } from "vitest"; import { resolvePrimeInferencePostLoginModelAction } from "../src/core/prime-inference-model-selection.js"; const glmModel: Model<"openai-completions"> = { - id: "z-ai/glm-5.2", - name: "GLM 5.2", + id: "z-ai/glm-5.3", + name: "GLM 5.3", api: "openai-completions", provider: "prime-inference", baseUrl: "https://api.pinference.ai/api/v1", @@ -21,7 +21,7 @@ const registry = { }; describe("Prime Inference post-login model selection", () => { - test("selects GLM 5.2 as a fallback and opens the model picker", () => { + test("selects GLM 5.3 as a fallback and opens the model picker", () => { const action = resolvePrimeInferencePostLoginModelAction( { status: "success", diff --git a/packages/coding-agent/test/suite/regressions/4573-prime-inference-login-default.test.ts b/packages/coding-agent/test/suite/regressions/4573-prime-inference-login-default.test.ts index 7a45c358b6..4653ccb5ad 100644 --- a/packages/coding-agent/test/suite/regressions/4573-prime-inference-login-default.test.ts +++ b/packages/coding-agent/test/suite/regressions/4573-prime-inference-login-default.test.ts @@ -36,10 +36,10 @@ describe("ENG-4573 Prime Inference login default", () => { } }); - test("persists GLM 5.2 so the next process starts with a valid model", async () => { + test("persists GLM 5.3 so the next process starts with a valid model", async () => { const harness = await createHarness({ provider: PRIME_INFERENCE_PROVIDER_ID, - models: [{ id: PRIME_INFERENCE_DEFAULT_MODEL_ID, name: "GLM 5.2" }], + models: [{ id: PRIME_INFERENCE_DEFAULT_MODEL_ID, name: "GLM 5.3" }], }); harnesses.push(harness); const agentDir = join(harness.tempDir, "agent"); @@ -64,10 +64,10 @@ describe("ENG-4573 Prime Inference login default", () => { expect(initial.model?.id).toBe(PRIME_INFERENCE_DEFAULT_MODEL_ID); }); - test("refreshes authenticated models before selecting and persisting GLM 5.2", async () => { + test("refreshes authenticated models before selecting and persisting GLM 5.3", async () => { const fallbackModel: AgentConnectionModel = { id: PRIME_INFERENCE_DEFAULT_MODEL_ID, - name: "GLM 5.2", + name: "GLM 5.3", api: "openai-completions", provider: PRIME_INFERENCE_PROVIDER_ID, baseUrl: "https://api.pinference.ai/api/v1",