diff --git a/src/utils/shell-executor.ts b/src/utils/shell-executor.ts index e8bb02d9..77135399 100644 --- a/src/utils/shell-executor.ts +++ b/src/utils/shell-executor.ts @@ -4,7 +4,7 @@ * Cross-platform shell execution utilities for CCS. */ -import { spawn, ChildProcess } from 'child_process'; +import { spawn, ChildProcess, execSync } from 'child_process'; import { ErrorManager } from './error-manager'; import { getWebSearchHookEnv } from './websearch-manager'; @@ -82,6 +82,21 @@ export function execClaude( ? { ...baseEnv, ...envVars, ...webSearchEnv } : { ...baseEnv, ...webSearchEnv }; + // 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) { + const tmuxPropagateVars = ['CLAUDE_CONFIG_DIR', 'CCS_PROFILE_TYPE', 'CCS_WEBSEARCH_SKIP']; + for (const key of tmuxPropagateVars) { + if (envVars[key]) { + try { + execSync(`tmux setenv ${key} ${JSON.stringify(envVars[key])}`, { stdio: 'ignore' }); + } catch { + // tmux setenv can fail if not in a tmux session; safe to ignore + } + } + } + } + let child: ChildProcess; if (needsShell) { // When shell needed: concatenate into string to avoid DEP0190 warning