diff --git a/src/utils/providerEnvSelection.test.ts b/src/utils/providerEnvSelection.test.ts index 23849269..2c4c6127 100644 --- a/src/utils/providerEnvSelection.test.ts +++ b/src/utils/providerEnvSelection.test.ts @@ -100,4 +100,17 @@ describe('filterSettingsEnvForExplicitProvider', () => { }), ).toEqual({ OTHER: 'keep-me' }) }) + + test('preserves explicit ollama startup intent by stripping OpenAI routing settings', () => { + process.env.CLAUDE_CODE_EXPLICIT_PROVIDER = 'ollama' + + expect( + filterSettingsEnvForExplicitProvider({ + OPENAI_BASE_URL: 'https://api.openai.com/v1', + OPENAI_MODEL: 'gpt-4o', + OPENAI_API_KEY: 'sk-test', + OTHER: 'keep-me', + }), + ).toEqual({ OTHER: 'keep-me' }) + }) }) diff --git a/src/utils/providerEnvSelection.ts b/src/utils/providerEnvSelection.ts index c11cb9d6..2603188a 100644 --- a/src/utils/providerEnvSelection.ts +++ b/src/utils/providerEnvSelection.ts @@ -41,6 +41,13 @@ export function filterSettingsEnvForExplicitProvider( delete filtered[key] } + if (explicitProvider === 'ollama') { + delete filtered.OPENAI_BASE_URL + delete filtered.OPENAI_MODEL + delete filtered.OPENAI_API_KEY + return filtered + } + if (explicitProvider === 'github') { if (!isGithubModel(filtered.OPENAI_MODEL)) { delete filtered.OPENAI_MODEL