From d4a6b540784314391c76d0c5da32c31882263bce 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 e2b51f2cb..ca898ac3e 100644 --- a/lib/canvas/generate-image.ts +++ b/lib/canvas/generate-image.ts @@ -4920,7 +4920,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); +});