feat: add Claude Opus 4.6 to built-in model catalog (#9853)

* feat: add Claude Opus 4.6 to built-in model catalog

- Update default model from claude-opus-4-5 to claude-opus-4-6
- Add opus-4.6 model ID normalization
- Add claude-opus-4-6 to live model filter prefixes
- Update image tool to prefer claude-opus-4-6 for vision
- Add CLI backend alias for opus-4.6
- Update onboard auth default selections to include opus-4.6
- Update model picker placeholder

Closes #9811

* test: update tests for claude-opus-4-6 default

- Fix model-alias-defaults test to use claude-opus-4-6
- Fix image-tool test to expect claude-opus-4-6 in fallbacks

* feat: support claude-opus-4-6

* docs: update changelog for opus 4.6 (#9853) (thanks @TinyTb)

* chore: bump pi to 0.52.0

---------

Co-authored-by: Slurpy <slurpy@openclaw.ai>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
This commit is contained in:
Michael Lee
2026-02-05 12:09:23 -08:00
committed by GitHub
parent ea237115a9
commit eb80b9acb3
16 changed files with 73 additions and 48 deletions

View File

@@ -53,7 +53,7 @@ describe("image tool implicit imageModel config", () => {
};
expect(resolveImageModelConfigForTool({ cfg, agentDir })).toEqual({
primary: "minimax/MiniMax-VL-01",
fallbacks: ["openai/gpt-5-mini", "anthropic/claude-opus-4-5"],
fallbacks: ["openai/gpt-5-mini", "anthropic/claude-opus-4-6"],
});
expect(createImageTool({ config: cfg, agentDir })).not.toBeNull();
});

View File

@@ -117,7 +117,7 @@ export function resolveImageModelConfigForTool(params: {
} else if (primary.provider === "openai" && openaiOk) {
preferred = "openai/gpt-5-mini";
} else if (primary.provider === "anthropic" && anthropicOk) {
preferred = "anthropic/claude-opus-4-5";
preferred = "anthropic/claude-opus-4-6";
}
if (preferred?.trim()) {
@@ -125,7 +125,7 @@ export function resolveImageModelConfigForTool(params: {
addFallback("openai/gpt-5-mini");
}
if (anthropicOk) {
addFallback("anthropic/claude-opus-4-5");
addFallback("anthropic/claude-opus-4-6");
}
// Don't duplicate primary in fallbacks.
const pruned = fallbacks.filter((ref) => ref !== preferred);
@@ -138,7 +138,7 @@ export function resolveImageModelConfigForTool(params: {
// Cross-provider fallback when we can't pair with the primary provider.
if (openaiOk) {
if (anthropicOk) {
addFallback("anthropic/claude-opus-4-5");
addFallback("anthropic/claude-opus-4-6");
}
return {
primary: "openai/gpt-5-mini",
@@ -146,7 +146,7 @@ export function resolveImageModelConfigForTool(params: {
};
}
if (anthropicOk) {
return { primary: "anthropic/claude-opus-4-5" };
return { primary: "anthropic/claude-opus-4-6" };
}
return null;