fix(agent): preserve legacy automatic image model selection

This commit is contained in:
134 2026-10-21 10:22:48 +08:00
parent 28c2a1ceb8
commit 5c126d26ab
2 changed files with 8 additions and 1 deletions

View File

@ -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("当前没有可用的备用图片模型,请稍后重试");
}

View File

@ -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);
});