diff --git a/src/supervisor/env-sanitizer.ts b/src/supervisor/env-sanitizer.ts index 8280cbf97e..f7c1d59a75 100644 --- a/src/supervisor/env-sanitizer.ts +++ b/src/supervisor/env-sanitizer.ts @@ -30,6 +30,7 @@ export const ENV_PRESERVE = new Set([ 'CLAUDE_CODE_GIT_BASH_PATH', 'CLAUDE_CODE_USE_BEDROCK', 'CLAUDE_CODE_USE_VERTEX', + 'CLAUDE_CODE_USE_FOUNDRY', 'CLAUDE_CODE_SKIP_BEDROCK_AUTH', 'CLAUDE_CODE_SKIP_VERTEX_AUTH', 'ANTHROPIC_BEDROCK_BASE_URL', diff --git a/tests/supervisor/env-sanitizer.test.ts b/tests/supervisor/env-sanitizer.test.ts index de6a5abbf3..9cacd66edd 100644 --- a/tests/supervisor/env-sanitizer.test.ts +++ b/tests/supervisor/env-sanitizer.test.ts @@ -134,6 +134,18 @@ describe('sanitizeEnv', () => { expect(result.HOME).toBe('/home/user'); }); + it('preserves CLAUDE_CODE_USE_FOUNDRY through sanitization', () => { + const result = sanitizeEnv({ + CLAUDE_CODE_USE_FOUNDRY: '1', + PATH: '/usr/bin', + HOME: '/home/user' + }); + + expect(result.CLAUDE_CODE_USE_FOUNDRY).toBe('1'); + expect(result.PATH).toBe('/usr/bin'); + expect(result.HOME).toBe('/home/user'); + }); + it('preserves proxy env vars (uppercase, lowercase, and npm config) for SDK subprocess network access', () => { const result = sanitizeEnv({ HTTP_PROXY: 'http://corp-proxy:1234', @@ -170,6 +182,7 @@ describe('sanitizeEnv', () => { CLAUDE_CODE_GIT_BASH_PATH: '/usr/bin/bash', CLAUDE_CODE_USE_BEDROCK: '1', CLAUDE_CODE_USE_VERTEX: '1', + CLAUDE_CODE_USE_FOUNDRY: '1', CLAUDE_CODE_SKIP_BEDROCK_AUTH: '1', CLAUDE_CODE_SKIP_VERTEX_AUTH: '1', CLAUDE_CODE_EFFORT_LEVEL: 'high', @@ -183,6 +196,7 @@ describe('sanitizeEnv', () => { expect(result.CLAUDE_CODE_GIT_BASH_PATH).toBe('/usr/bin/bash'); expect(result.CLAUDE_CODE_USE_BEDROCK).toBe('1'); expect(result.CLAUDE_CODE_USE_VERTEX).toBe('1'); + expect(result.CLAUDE_CODE_USE_FOUNDRY).toBe('1'); expect(result.CLAUDE_CODE_SKIP_BEDROCK_AUTH).toBe('1'); expect(result.CLAUDE_CODE_SKIP_VERTEX_AUTH).toBe('1');