diff --git a/electron/services/providers/provider-runtime-sync.ts b/electron/services/providers/provider-runtime-sync.ts index eeb5d2d8..19c1e891 100644 --- a/electron/services/providers/provider-runtime-sync.ts +++ b/electron/services/providers/provider-runtime-sync.ts @@ -30,7 +30,7 @@ import { listAgentsSnapshot } from '../../utils/agent-config'; /** OpenClaw Codex OAuth hooks only apply to the canonical `openai` provider id. */ const OPENAI_OAUTH_RUNTIME_PROVIDER = 'openai'; -const OPENAI_OAUTH_DEFAULT_MODEL_REF = `${OPENAI_OAUTH_RUNTIME_PROVIDER}/gpt-5.5`; +const OPENAI_OAUTH_DEFAULT_MODEL_REF = `${OPENAI_OAUTH_RUNTIME_PROVIDER}/gpt-5.6-sol`; /** * Provider types that are not in the built-in provider registry (no `providerConfig.api`). diff --git a/electron/shared/providers/registry.ts b/electron/shared/providers/registry.ts index 1b60bbad..90cae87e 100644 --- a/electron/shared/providers/registry.ts +++ b/electron/shared/providers/registry.ts @@ -31,11 +31,11 @@ export const PROVIDER_DEFINITIONS: ProviderDefinition[] = [ requiresApiKey: true, category: 'official', envVar: 'OPENAI_API_KEY', - defaultModelId: 'gpt-5.5', + defaultModelId: 'gpt-5.6-sol', isOAuth: true, supportsApiKey: true, showModelId: true, - modelIdPlaceholder: 'gpt-5.5', + modelIdPlaceholder: 'gpt-5.6-sol', supportedAuthModes: ['api_key', 'oauth_browser'], defaultAuthMode: 'api_key', supportsMultipleAccounts: true, diff --git a/electron/utils/browser-oauth.ts b/electron/utils/browser-oauth.ts index 95d3e9de..6b89355c 100644 --- a/electron/utils/browser-oauth.ts +++ b/electron/utils/browser-oauth.ts @@ -19,7 +19,7 @@ import { export type BrowserOAuthProviderType = 'openai'; const OPENAI_RUNTIME_PROVIDER_ID = 'openai'; -const OPENAI_OAUTH_DEFAULT_MODEL = 'gpt-5.5'; +const OPENAI_OAUTH_DEFAULT_MODEL = 'gpt-5.6-sol'; class BrowserOAuthManager extends EventEmitter { private activeAccountId: string | null = null; diff --git a/src/lib/providers.ts b/src/lib/providers.ts index 20c3f246..548aa3ed 100644 --- a/src/lib/providers.ts +++ b/src/lib/providers.ts @@ -172,9 +172,9 @@ export const PROVIDER_TYPE_INFO: ProviderTypeInfo[] = [ requiresApiKey: true, isOAuth: true, supportsApiKey: true, - defaultModelId: 'gpt-5.5', + defaultModelId: 'gpt-5.6-sol', showModelId: true, - modelIdPlaceholder: 'gpt-5.5', + modelIdPlaceholder: 'gpt-5.6-sol', apiKeyUrl: 'https://platform.openai.com/api-keys', }, { diff --git a/tests/unit/provider-runtime-sync.test.ts b/tests/unit/provider-runtime-sync.test.ts index 93158cb4..baecc972 100644 --- a/tests/unit/provider-runtime-sync.test.ts +++ b/tests/unit/provider-runtime-sync.test.ts @@ -234,7 +234,7 @@ describe('provider-runtime-sync refresh strategy', () => { expect(gateway.debouncedRestart).not.toHaveBeenCalled(); }); - it('uses gpt-5.5 as the browser OAuth default model for OpenAI', async () => { + it('uses gpt-5.6-sol as the browser OAuth default model for OpenAI', async () => { mocks.getProvider.mockResolvedValue( createProvider({ id: 'openai-personal', @@ -257,7 +257,7 @@ describe('provider-runtime-sync refresh strategy', () => { expect(mocks.setOpenClawDefaultModelWithOverride).toHaveBeenCalledWith( 'openai', - 'openai/gpt-5.5', + 'openai/gpt-5.6-sol', { baseUrl: 'https://chatgpt.com/backend-api/codex', api: 'openai-chatgpt-responses', diff --git a/tests/unit/providers.test.ts b/tests/unit/providers.test.ts index 2ae8be6b..0fc02878 100644 --- a/tests/unit/providers.test.ts +++ b/tests/unit/providers.test.ts @@ -201,7 +201,7 @@ describe('provider metadata', () => { expect(openai).toMatchObject({ showModelId: true, - defaultModelId: 'gpt-5.5', + defaultModelId: 'gpt-5.6-sol', isOAuth: true, supportsApiKey: true, }); @@ -216,7 +216,7 @@ describe('provider metadata', () => { expect(shouldShowProviderModelId(provider, true)).toBe(true); } - expect(resolveProviderModelForSave(openai, ' ', false)).toBe('gpt-5.5'); + expect(resolveProviderModelForSave(openai, ' ', false)).toBe('gpt-5.6-sol'); expect(resolveProviderModelForSave(google, ' ', false)).toBe('gemini-3.1-pro-preview'); expect(resolveProviderModelForSave(minimax, ' ', false)).toBe('MiniMax-M3'); expect(resolveProviderModelForSave(minimaxCn, ' ', false)).toBe('MiniMax-M3');