Scrub ChatGPT OAuth env from provider settings JSON

The desktop provider settings editor has its own JSON scrubber for provider-managed env. It now removes the ChatGPT Official OAuth marker and token-file path along with the Anthropic provider env keys, so editing another provider cannot keep stale OpenAI OAuth runtime markers in previewed settings JSON.

Constraint: Desktop JSON preview cleanup is separate from server managed-env filtering.

Rejected: Rely only on server activation cleanup | the settings editor can preview and persist user-edited JSON before the server rebuilds provider env.

Confidence: high

Scope-risk: narrow

Tested: cd desktop && bun test src/lib/__tests__/providerSettingsJson.test.ts

Tested: bun test src/server/__tests__/providers.test.ts --test-name-pattern "ChatGPT Official|getProviderForProxy"

Tested: bun test src/server/__tests__/conversation-service.test.ts --test-name-pattern "ChatGPT Official|session-scoped provider"

Tested: git diff --check
This commit is contained in:
程序员阿江(Relakkes) 2026-05-18 23:32:22 +08:00
parent 9a11f35bcd
commit 67a64c7f80
2 changed files with 4 additions and 0 deletions

View File

@ -52,6 +52,8 @@ describe('provider settings JSON helpers', () => {
ANTHROPIC_BASE_URL: 'https://old.example.com',
ANTHROPIC_MODEL: 'old-model',
CLAUDE_CODE_MODEL_CONTEXT_WINDOWS: '{"old":100000}',
CC_HAHA_OPENAI_OAUTH_PROVIDER: '1',
OPENAI_CODEX_OAUTH_FILE: '/tmp/openai-oauth.json',
CC_HAHA_SEND_DISABLED_THINKING: '1',
USER_DEFINED: 'keep-me',
},

View File

@ -20,9 +20,11 @@ const PROVIDER_SETTINGS_JSON_ENV_KEYS = new Set([
'ANTHROPIC_DEFAULT_OPUS_MODEL_NAME',
'ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES',
'ANTHROPIC_SMALL_FAST_MODEL',
'CC_HAHA_OPENAI_OAUTH_PROVIDER',
'CLAUDE_CODE_AUTO_COMPACT_WINDOW',
'CLAUDE_CODE_MODEL_CONTEXT_WINDOWS',
'CLAUDE_CODE_SUBAGENT_MODEL',
'OPENAI_CODEX_OAUTH_FILE',
])
function getEnvRecord(raw: string): Record<string, unknown> | null {