diff --git a/src/server/__tests__/providers.test.ts b/src/server/__tests__/providers.test.ts index 8d01edf7..134c4475 100644 --- a/src/server/__tests__/providers.test.ts +++ b/src/server/__tests__/providers.test.ts @@ -320,10 +320,30 @@ describe('ProviderService', () => { await svc.activateProvider('openai-official') const config = await readProvidersConfig() + const settings = await readSettings() expect(config.activeId).toBe('openai-official') - await expect( - fs.readFile(path.join(tmpDir, 'cc-haha', 'settings.json'), 'utf-8'), - ).rejects.toThrow() + expect(settings.env).toBeUndefined() + }) + + test('activating ChatGPT Official clears stale managed provider env', async () => { + const svc = new ProviderService() + const provider = await svc.addProvider(sampleInput({ + apiFormat: 'openai_responses', + baseUrl: 'https://api.example.com/openai', + models: { + main: 'provider-main', + haiku: 'provider-haiku', + sonnet: 'provider-sonnet', + opus: 'provider-opus', + }, + })) + await svc.activateProvider(provider.id) + expect(((await readSettings()).env as Record).ANTHROPIC_BASE_URL).toContain('/proxy') + + await svc.activateProvider('openai-official') + + const settings = await readSettings() + expect(settings.env).toBeUndefined() }) }) diff --git a/src/server/services/providerService.ts b/src/server/services/providerService.ts index cc0fba8e..4197baef 100644 --- a/src/server/services/providerService.ts +++ b/src/server/services/providerService.ts @@ -359,6 +359,7 @@ export class ProviderService { await this.writeIndex(index) if (isOpenAIOfficialProviderId(id)) { + await this.clearProviderFromSettings() return }