From 8288f2c3f77402920cb9f046993873ef60c67a0d Mon Sep 17 00:00:00 2001 From: Rishabh Singh Date: Tue, 1 Sep 2026 11:17:57 +0530 Subject: [PATCH] feat(model): switch the locked lesson model to z.ai GLM 5.3 Flash MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit vercel/openai/gpt-5.6-luna -> vercel/zai/glm-5.3-flash, verified against the live AI Gateway model list. resolveLessonModel means any stored or requested Luna id falls back to the new default automatically. Note: PDF/attachment behavior is model-specific (see CLAUDE.md on Grok and Muse Spark) — run the lesson-agent.live attachment test before relying on chapter-PDF uploads with this model. Co-Authored-By: Claude Fable 5 --- scripts/agent-e2e.ts | 2 +- src/mastra/agents/lesson-shared.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/agent-e2e.ts b/scripts/agent-e2e.ts index d52ea05..5eecf8d 100644 --- a/scripts/agent-e2e.ts +++ b/scripts/agent-e2e.ts @@ -101,7 +101,7 @@ const DEFAULT_TOPIC = const topic = process.argv[2]?.trim() || DEFAULT_TOPIC; const threadId = process.argv[3]?.trim() || `e2e-acids-bases-01`; const userId = "e2e-user"; -const model = resolveLessonModel(undefined); // repo default (GPT 5.6 Luna) +const model = resolveLessonModel(undefined); // repo default (GLM 5.3 Flash) // A real chat is many turns; a request is capped at LESSON_MAX_STEPS. Here we // want one autonomous build, so we give a generous per-turn step budget and, as diff --git a/src/mastra/agents/lesson-shared.ts b/src/mastra/agents/lesson-shared.ts index 79c9a8d..537fb16 100644 --- a/src/mastra/agents/lesson-shared.ts +++ b/src/mastra/agents/lesson-shared.ts @@ -9,7 +9,7 @@ * app to one model — stored settings and request bodies naming a removed model * fall back to the default rather than erroring. * - * Currently OpenAI GPT 5.6 Luna only, and the composer no longer offers a + * Currently z.ai GLM 5.3 Flash only, and the composer no longer offers a * picker. Re-enabling choice means adding entries here, restoring a dropdown * in `prompt-box.tsx`, and sending the choice as `model` in the chat request * body — the route still runs `resolveLessonModel(body.model)`, so the server @@ -17,9 +17,9 @@ */ export const LESSON_MODELS = [ { - id: "vercel/openai/gpt-5.6-luna", - label: "GPT 5.6 Luna", - description: "Default. Thinks it through.", + id: "vercel/zai/glm-5.3-flash", + label: "GLM 5.3 Flash", + description: "Default. Fast and to the point.", }, ] as const;