From 5c126d26abdacf3b08f1eac4f5cad7c550887ea5 Mon Sep 17 00:00:00 2001 From: 134 Date: Wed, 21 Oct 2026 10:22:48 +0800 Subject: [PATCH] fix(agent): preserve legacy automatic image model selection --- lib/canvas/generate-image.ts | 2 +- tests/routes/canvas-agent-runtime-image-failover.test.ts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/canvas/generate-image.ts b/lib/canvas/generate-image.ts index 3c7dfa44f..2ae709c20 100644 --- a/lib/canvas/generate-image.ts +++ b/lib/canvas/generate-image.ts @@ -4917,7 +4917,7 @@ export async function generateCanvasImage( : imageModels.find((m) => m.model.isDefault) || imageModels[0]; if (!selectedModel) { - if (model && request.allowFailover === false) throw new Error("指定的图片模型不可用,未切换到其他模型"); + if (model && (model !== "auto" || request.agentImageMode === "pinned") && request.allowFailover === false) throw new Error("指定的图片模型不可用,未切换到其他模型"); selectedModel = request.agentImageMode === "auto" ? imageModels.find(entry => !entry.model.excludeFromFailover) : imageModels[0]; if (!selectedModel) throw new Error("当前没有可用的备用图片模型,请稍后重试"); } diff --git a/tests/routes/canvas-agent-runtime-image-failover.test.ts b/tests/routes/canvas-agent-runtime-image-failover.test.ts index b53ac7683..19ec552a0 100644 --- a/tests/routes/canvas-agent-runtime-image-failover.test.ts +++ b/tests/routes/canvas-agent-runtime-image-failover.test.ts @@ -61,3 +61,10 @@ test("automatic fallback respects requested dimensions, disabled candidates and const result = await h.generate({ ...h.request, agentImageMaxCreditCost: 3 }); expect(result.modelRef).toBe("backup"); expect(h.calls.map(c => c.id)).toEqual(["primary", "backup"]); }); + + +test("the existing non-Agent auto alias continues to select its configured default", async () => { + const h = harness(); + const result = await h.generate({ ...h.request, model: "auto", agentImageMode: undefined, allowFailover: false }); + expect(result.modelRef).toBe("primary"); expect(h.calls).toHaveLength(1); +});