diff --git a/src/delegation/headless-executor.ts b/src/delegation/headless-executor.ts index 3cf1b45f..9e2ad2c3 100644 --- a/src/delegation/headless-executor.ts +++ b/src/delegation/headless-executor.ts @@ -207,10 +207,15 @@ export class HeadlessExecutor { console.error(ui.info(`Delegating to ${modelName}...`)); } + // Strip Claude Code nested session guard env var to allow CCS delegation + // (Claude Code v2.1.39+ sets CLAUDECODE to detect nested sessions) + const { CLAUDECODE: _nested, ...cleanEnv } = process.env; + const proc = spawn(claudeCli, args, { cwd, stdio: ['ignore', 'pipe', 'pipe'], timeout, + env: cleanEnv, }); let stdout = ''; diff --git a/src/utils/shell-executor.ts b/src/utils/shell-executor.ts index 017cd709..e8a8b93f 100644 --- a/src/utils/shell-executor.ts +++ b/src/utils/shell-executor.ts @@ -84,6 +84,10 @@ export function execClaude( ? { ...baseEnv, ...envVars, ...webSearchEnv } : { ...baseEnv, ...webSearchEnv }; + // Strip Claude Code nested session guard env var to allow CCS delegation + // (Claude Code v2.1.39+ sets CLAUDECODE to detect nested sessions) + delete env.CLAUDECODE; + // propagate key env vars to tmux session so agent team teammates // (spawned via tmux split-window) inherit the correct config dir if (process.env.TMUX && envVars) {