diff --git a/CHANGELOG.md b/CHANGELOG.md index 7203dded458..0a779d8531c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ Docs: https://docs.openclaw.ai ### Fixes +- Agents: revert accidental per-model thinkingDefault override merge. (#19195) Thanks @sebslight. - Voice call/Gateway: prevent overlapping closed-loop turn races with per-call turn locking, route transcript dedupe via source-aware fingerprints with strict cache eviction bounds, and harden `voicecall latency` stats for large logs without spread-operator stack overflow. (#19140) Thanks @mbelinky. - iOS/Onboarding: stop auth Step 3 retry-loop churn by pausing reconnect attempts on unauthorized/missing-token gateway errors and keeping auth/pairing issue state sticky during manual retry. (#19153) Thanks @mbelinky. - Fix types in all tests. Typecheck the whole repository. diff --git a/src/agents/model-selection.ts b/src/agents/model-selection.ts index 6471a7b8ffc..04a87ece072 100644 --- a/src/agents/model-selection.ts +++ b/src/agents/model-selection.ts @@ -452,29 +452,10 @@ export function resolveThinkingDefault(params: { model: string; catalog?: ModelCatalogEntry[]; }): ThinkLevel { - // 1. Per-model thinkingDefault (highest priority) - // Normalize config keys via parseModelRef (consistent with buildModelAliasIndex, - // buildAllowedModelSet, etc.) so aliases like "anthropic/opus-4.6" resolve correctly. - const configModels = params.cfg.agents?.defaults?.models ?? {}; - for (const [rawKey, entry] of Object.entries(configModels)) { - const parsed = parseModelRef(rawKey, params.provider); - if ( - parsed && - parsed.provider === params.provider && - parsed.model === params.model && - entry?.thinkingDefault - ) { - return entry.thinkingDefault as ThinkLevel; - } - } - - // 2. Global thinkingDefault const configured = params.cfg.agents?.defaults?.thinkingDefault; if (configured) { return configured; } - - // 3. Auto-detect from model catalog (reasoning-capable → "low") const candidate = params.catalog?.find( (entry) => entry.provider === params.provider && entry.id === params.model, ); diff --git a/src/config/types.agent-defaults.ts b/src/config/types.agent-defaults.ts index d7ee643893c..4c9dba0a238 100644 --- a/src/config/types.agent-defaults.ts +++ b/src/config/types.agent-defaults.ts @@ -18,8 +18,6 @@ export type AgentModelEntryConfig = { params?: Record; /** Enable streaming for this model (default: true, false for Ollama to avoid SDK issue #1205). */ streaming?: boolean; - /** Per-model default thinking level (overrides global thinkingDefault). */ - thinkingDefault?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh"; }; export type AgentModelListConfig = { diff --git a/src/config/zod-schema.agent-defaults.ts b/src/config/zod-schema.agent-defaults.ts index cfcb81404ed..2508179707c 100644 --- a/src/config/zod-schema.agent-defaults.ts +++ b/src/config/zod-schema.agent-defaults.ts @@ -38,17 +38,6 @@ export const AgentDefaultsSchema = z params: z.record(z.string(), z.unknown()).optional(), /** Enable streaming for this model (default: true, false for Ollama to avoid SDK issue #1205). */ streaming: z.boolean().optional(), - /** Per-model default thinking level (overrides global thinkingDefault). */ - thinkingDefault: z - .union([ - z.literal("off"), - z.literal("minimal"), - z.literal("low"), - z.literal("medium"), - z.literal("high"), - z.literal("xhigh"), - ]) - .optional(), }) .strict(), )