Skip to content

Commit f4b5e58

Browse files
committed
fix: aggressively prune retired model catalogs
1 parent 7fffbf6 commit f4b5e58

26 files changed

Lines changed: 231 additions & 750 deletions

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Docs: https://docs.openclaw.ai
5454

5555
### Fixes
5656

57-
- Models: prune retired GitHub Copilot model rows and old Claude catalog entries below 4.6, with doctor migration to upgrade existing configs to current Claude/Copilot refs.
57+
- Models: prune retired Groq, GitHub Copilot, OpenAI, xAI, and old Claude catalog entries, with doctor migration to upgrade existing configs to current provider refs.
5858
- Doctor/update: recognize junction-backed source checkouts as git installs by comparing canonical paths before showing package-manager update guidance. Fixes #82215. Thanks @igormf.
5959
- CLI/skills: show an all-ready note with next-step commands when skill setup has no missing dependencies to install. (#85032) Thanks @aniruddhaadak80.
6060
- Microsoft Foundry: route DeepSeek V4 Pro and Flash models through the Foundry Responses API while keeping older DeepSeek models on their existing path. (#85549) Thanks @roslinmahmud.

docs/cli/infer.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ openclaw infer model run --local --model google/gemini-2.5-flash --prompt "Reply
163163
openclaw infer model run --local --model groq/llama-3.1-8b-instant --prompt "Reply with exactly: pong" --json
164164
openclaw infer model run --local --model mistral/mistral-medium-3-5 --prompt "Reply with exactly: pong" --json
165165
openclaw infer model run --local --model mistral/mistral-small-latest --prompt "Reply with exactly: pong" --json
166-
openclaw infer model run --local --model openai/gpt-4.1 --prompt "Reply with exactly: pong" --json
166+
openclaw infer model run --local --model openai/gpt-5.5 --prompt "Reply with exactly: pong" --json
167167
openclaw infer model run --local --model ollama/qwen2.5vl:7b --prompt "Describe this image." --file ./photo.jpg --json
168168
```
169169

@@ -196,7 +196,7 @@ openclaw infer image describe --file ./photo.jpg --json
196196
openclaw infer image describe --file https://example.com/photo.png --json
197197
openclaw infer image describe --file ./receipt.jpg --prompt "Extract the merchant, date, and total" --json
198198
openclaw infer image describe-many --file ./before.png --file ./after.png --prompt "Compare the screenshots and list visible UI changes" --json
199-
openclaw infer image describe --file ./ui-screenshot.png --model openai/gpt-4.1-mini --json
199+
openclaw infer image describe --file ./ui-screenshot.png --model openai/gpt-5.4-mini --json
200200
openclaw infer image describe --file ./photo.jpg --model ollama/qwen2.5vl:7b --prompt "Describe the image in one sentence" --timeout-ms 300000 --json
201201
```
202202

@@ -272,7 +272,7 @@ Use `video` for generation and description.
272272
openclaw infer video generate --prompt "cinematic sunset over the ocean" --json
273273
openclaw infer video generate --prompt "slow drone shot over a forest lake" --resolution 768P --duration 6 --json
274274
openclaw infer video describe --file ./clip.mp4 --json
275-
openclaw infer video describe --file ./clip.mp4 --model openai/gpt-4.1-mini --json
275+
openclaw infer video describe --file ./clip.mp4 --model openai/gpt-5.4-mini --json
276276
```
277277

278278
Notes:

docs/gateway/config-agents.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1397,7 +1397,7 @@ Batches rapid text-only messages from the same sender into a single agent turn.
13971397
auto: "always", // off | always | inbound | tagged
13981398
mode: "final", // final | all
13991399
provider: "elevenlabs",
1400-
summaryModel: "openai/gpt-4.1-mini",
1400+
summaryModel: "openai/gpt-5.4-mini",
14011401
modelOverrides: { enabled: true },
14021402
maxTextLength: 4000,
14031403
timeoutMs: 30000,

docs/gateway/config-channels.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@ Use `channels.modelByChannel` to pin specific channel IDs to a model. Values acc
5353
"123456789012345678": "anthropic/claude-opus-4-6",
5454
},
5555
slack: {
56-
C1234567890: "openai/gpt-4.1",
56+
C1234567890: "openai/gpt-5.5",
5757
},
5858
telegram: {
59-
"-1001234567890": "openai/gpt-4.1-mini",
59+
"-1001234567890": "openai/gpt-5.4-mini",
6060
"-1001234567890:topic:99": "anthropic/claude-sonnet-4-6",
6161
},
6262
},

docs/providers/github-copilot.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ back to `COPILOT_GITHUB_TOKEN`, `GH_TOKEN`, then `GITHUB_TOKEN`. Use
9999

100100
<Accordion title="Model availability depends on your plan">
101101
Copilot model availability depends on your GitHub plan. If a model is
102-
rejected, try another ID (for example `github-copilot/gpt-4.1`). See
102+
rejected, try another ID (for example `github-copilot/gpt-5.5`). See
103103
GitHub's [supported models per Copilot plan](https://docs.github.com/en/copilot/reference/ai-models/supported-models#supported-ai-models-per-copilot-plan)
104104
for the current model list.
105105
</Accordion>

docs/providers/groq.md

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -75,26 +75,17 @@ export GROQ_API_KEY=gsk_...
7575

7676
OpenClaw ships a manifest-backed Groq catalog with both reasoning and non-reasoning entries. Run `openclaw models list --provider groq` to see the bundled rows for your installed version, or check [console.groq.com/docs/models](https://console.groq.com/docs/models) for Groq's authoritative list.
7777

78-
| Model ref | Name | Reasoning | Input | Context |
79-
| ---------------------------------------------------- | ----------------------------- | --------- | ------------ | ------- |
80-
| `groq/llama-3.3-70b-versatile` | Llama 3.3 70B Versatile | no | text | 131,072 |
81-
| `groq/llama-3.1-8b-instant` | Llama 3.1 8B Instant | no | text | 131,072 |
82-
| `groq/meta-llama/llama-4-maverick-17b-128e-instruct` | Llama 4 Maverick 17B | no | text + image | 131,072 |
83-
| `groq/meta-llama/llama-4-scout-17b-16e-instruct` | Llama 4 Scout 17B | no | text + image | 131,072 |
84-
| `groq/llama3-70b-8192` | Llama 3 70B | no | text | 8,192 |
85-
| `groq/llama3-8b-8192` | Llama 3 8B | no | text | 8,192 |
86-
| `groq/gemma2-9b-it` | Gemma 2 9B | no | text | 8,192 |
87-
| `groq/mistral-saba-24b` | Mistral Saba 24B | no | text | 32,768 |
88-
| `groq/moonshotai/kimi-k2-instruct` | Kimi K2 Instruct | no | text | 131,072 |
89-
| `groq/moonshotai/kimi-k2-instruct-0905` | Kimi K2 Instruct 0905 | no | text | 262,144 |
90-
| `groq/openai/gpt-oss-120b` | GPT OSS 120B | yes | text | 131,072 |
91-
| `groq/openai/gpt-oss-20b` | GPT OSS 20B | yes | text | 131,072 |
92-
| `groq/openai/gpt-oss-safeguard-20b` | Safety GPT OSS 20B | yes | text | 131,072 |
93-
| `groq/qwen-qwq-32b` | Qwen QwQ 32B | yes | text | 131,072 |
94-
| `groq/qwen/qwen3-32b` | Qwen3 32B | yes | text | 131,072 |
95-
| `groq/deepseek-r1-distill-llama-70b` | DeepSeek R1 Distill Llama 70B | yes | text | 131,072 |
96-
| `groq/groq/compound` | Compound | yes | text | 131,072 |
97-
| `groq/groq/compound-mini` | Compound Mini | yes | text | 131,072 |
78+
| Model ref | Name | Reasoning | Input | Context |
79+
| ------------------------------------------------ | ----------------------- | --------- | ------------ | ------- |
80+
| `groq/llama-3.3-70b-versatile` | Llama 3.3 70B Versatile | no | text | 131,072 |
81+
| `groq/llama-3.1-8b-instant` | Llama 3.1 8B Instant | no | text | 131,072 |
82+
| `groq/meta-llama/llama-4-scout-17b-16e-instruct` | Llama 4 Scout 17B | no | text + image | 131,072 |
83+
| `groq/openai/gpt-oss-120b` | GPT OSS 120B | yes | text | 131,072 |
84+
| `groq/openai/gpt-oss-20b` | GPT OSS 20B | yes | text | 131,072 |
85+
| `groq/openai/gpt-oss-safeguard-20b` | Safety GPT OSS 20B | yes | text | 131,072 |
86+
| `groq/qwen/qwen3-32b` | Qwen3 32B | yes | text | 131,072 |
87+
| `groq/groq/compound` | Compound | yes | text | 131,072 |
88+
| `groq/groq/compound-mini` | Compound Mini | yes | text | 131,072 |
9889

9990
<Tip>
10091
The catalog evolves with each OpenClaw release. `openclaw models list --provider groq` shows the rows known to your installed version; cross-check with [console.groq.com/docs/models](https://console.groq.com/docs/models) for newly-added or deprecated models.

extensions/codex/provider-catalog.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,6 @@ export const FALLBACK_CODEX_MODELS = [
2929
inputModalities: ["text", "image"],
3030
supportedReasoningEfforts: ["low", "medium", "high", "xhigh"],
3131
},
32-
{
33-
id: "gpt-5.2",
34-
model: "gpt-5.2",
35-
displayName: "gpt-5.2",
36-
inputModalities: ["text", "image"],
37-
supportedReasoningEfforts: ["low", "medium", "high", "xhigh"],
38-
},
3932
] satisfies CodexAppServerModel[];
4033

4134
export function buildCodexModelDefinition(model: {

extensions/codex/provider.test.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,7 @@ afterEach(() => {
1616
function expectStaticFallbackCatalog(
1717
result: Awaited<ReturnType<typeof buildCodexProviderCatalog>>,
1818
) {
19-
expect(result.provider.models.map((model) => model.id)).toEqual([
20-
"gpt-5.5",
21-
"gpt-5.4-mini",
22-
"gpt-5.2",
23-
]);
19+
expect(result.provider.models.map((model) => model.id)).toEqual(["gpt-5.5", "gpt-5.4-mini"]);
2420
}
2521

2622
function createFakeCodexClient(): CodexAppServerClient {
@@ -170,8 +166,8 @@ describe("codex provider", () => {
170166
.mockResolvedValueOnce({
171167
models: [
172168
{
173-
id: "gpt-5.2",
174-
model: "gpt-5.2",
169+
id: "gpt-5.5",
170+
model: "gpt-5.5",
175171
hidden: false,
176172
inputModalities: ["text"],
177173
supportedReasoningEfforts: [],
@@ -194,7 +190,7 @@ describe("codex provider", () => {
194190
limit: 100,
195191
sharedClient: false,
196192
});
197-
expect(result.provider.models.map((model) => model.id)).toEqual(["gpt-5.4", "gpt-5.2"]);
193+
expect(result.provider.models.map((model) => model.id)).toEqual(["gpt-5.4", "gpt-5.5"]);
198194
});
199195

200196
it("reports discovery failures before using the fallback catalog", async () => {
@@ -353,7 +349,7 @@ describe("codex provider", () => {
353349

354350
expect(
355351
result && "provider" in result ? result.provider.models.map((model) => model.id) : [],
356-
).toEqual(["gpt-5.5", "gpt-5.4-mini", "gpt-5.2"]);
352+
).toEqual(["gpt-5.5", "gpt-5.4-mini"]);
357353
});
358354

359355
it("adds the GPT-5 prompt overlay to Codex provider runs", () => {

extensions/codex/provider.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,5 @@ function isKnownXHighCodexModel(modelId: string): boolean {
237237
// CLI default. (#71946)
238238
export function isModernCodexModel(modelId: string): boolean {
239239
const lower = modelId.trim().toLowerCase();
240-
return (
241-
lower === "gpt-5.5" || lower === "gpt-5.4" || lower === "gpt-5.4-mini" || lower === "gpt-5.2"
242-
);
240+
return lower === "gpt-5.5" || lower === "gpt-5.4" || lower === "gpt-5.4-mini";
243241
}

extensions/codex/src/app-server/models.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,13 +172,13 @@ describe("listCodexAppServerModels", () => {
172172
result: {
173173
data: [
174174
{
175-
id: "gpt-5.2",
176-
model: "gpt-5.2",
175+
id: "gpt-5.5",
176+
model: "gpt-5.5",
177177
upgrade: null,
178178
upgradeInfo: null,
179179
availabilityNux: null,
180-
displayName: "gpt-5.2",
181-
description: "GPT-5.2",
180+
displayName: "gpt-5.5",
181+
description: "GPT-5.5",
182182
hidden: false,
183183
inputModalities: ["text", "image"],
184184
supportedReasoningEfforts: [],
@@ -193,7 +193,7 @@ describe("listCodexAppServerModels", () => {
193193
});
194194

195195
const list = await listPromise;
196-
expect(list.models.map((model) => model.id)).toEqual(["gpt-5.4", "gpt-5.2"]);
196+
expect(list.models.map((model) => model.id)).toEqual(["gpt-5.4", "gpt-5.5"]);
197197
harness.client.close();
198198
startSpy.mockRestore();
199199
});

0 commit comments

Comments
 (0)