From 11c09f7fd4fecbc7d8ac8e383dc09a7db43092ca Mon Sep 17 00:00:00 2001 From: Adam Creeger Date: Sun, 22 Mar 2026 23:45:39 -0400 Subject: [PATCH] fix(auth): remove CLAUDE_CODE_SIMPLE env var that breaks OAuth auth CLAUDE_CODE_SIMPLE=1 disables OAuth credential lookup in Claude CLI, causing "Not logged in" errors for branch name and commit message generation when no ANTHROPIC_API_KEY is set. --- src/lib/CommitManager.test.ts | 14 -------------- src/lib/CommitManager.ts | 1 - src/utils/claude.test.ts | 2 +- src/utils/claude.ts | 1 - 4 files changed, 1 insertion(+), 17 deletions(-) diff --git a/src/lib/CommitManager.test.ts b/src/lib/CommitManager.test.ts index 945adcd9..bd2b6f45 100644 --- a/src/lib/CommitManager.test.ts +++ b/src/lib/CommitManager.test.ts @@ -637,20 +637,6 @@ describe('CommitManager', () => { ) }) - it('should pass CLAUDE_CODE_SIMPLE env var for minimal mode', async () => { - vi.mocked(claude.launchClaude).mockResolvedValue('Add feature') - vi.mocked(git.executeGitCommand).mockResolvedValue('') - - await manager.commitChanges(mockWorktreePath, { issuePrefix: '#', dryRun: false }) - - const claudeCall = vi.mocked(claude.launchClaude).mock.calls[0] - expect(claudeCall[1]).toEqual( - expect.objectContaining({ - env: { CLAUDE_CODE_SIMPLE: '1' }, - }) - ) - }) - it('should use structured XML prompt format', async () => { vi.mocked(claude.launchClaude).mockResolvedValue('Add feature') vi.mocked(git.executeGitCommand).mockResolvedValue('') diff --git a/src/lib/CommitManager.ts b/src/lib/CommitManager.ts index 5a354666..7a4fc278 100644 --- a/src/lib/CommitManager.ts +++ b/src/lib/CommitManager.ts @@ -344,7 +344,6 @@ export class CommitManager { timeout: 120000, // 120 second timeout appendSystemPrompt: 'Output only the requested content. Never include preamble, analysis, or meta-commentary. Your response is used verbatim.', noSessionPersistence: true, // Utility operation - don't persist session - env: { CLAUDE_CODE_SIMPLE: '1' }, // Minimal mode - no MCP, hooks, or CLAUDE.md loading } getLogger().debug('Claude CLI call parameters:', { options: claudeOptions, diff --git a/src/utils/claude.test.ts b/src/utils/claude.test.ts index 09858798..5777fcac 100644 --- a/src/utils/claude.test.ts +++ b/src/utils/claude.test.ts @@ -2329,7 +2329,7 @@ describe('claude utils', () => { ['-p', '--output-format', 'stream-json', '--verbose', '--model', 'haiku', '--add-dir', '/tmp', '--no-session-persistence'], expect.objectContaining({ input: expect.stringContaining(issueTitle), - env: expect.objectContaining({ CLAUDE_CODE_SIMPLE: '1' }), + env: expect.objectContaining({ CLAUDECODE: '0' }), }) ) }) diff --git a/src/utils/claude.ts b/src/utils/claude.ts index 3faa2482..32fa244d 100644 --- a/src/utils/claude.ts +++ b/src/utils/claude.ts @@ -649,7 +649,6 @@ Generate a git branch name for the following issue: model, headless: true, noSessionPersistence: true, // Utility operation - don't persist session - env: { CLAUDE_CODE_SIMPLE: '1' }, // Minimal mode - no MCP, hooks, or CLAUDE.md loading })) as string // Normalize to lowercase for consistency (Linear IDs are uppercase but branches should be lowercase)