From c4b033a5c0b3ee072facb200605d2842cc0fa297 Mon Sep 17 00:00:00 2001 From: Greg Ceccarelli Date: Thu, 29 Jan 2026 17:05:24 -0500 Subject: [PATCH] fix(agent-management): pass env vars to agent in spawn_streaming The spawn_streaming() function was not passing environment variables from SpawnOptions.env to the spawned process. This caused agents like Claude to not receive ANTHROPIC_API_KEY, resulting in silent authentication failures. The non-streaming spawn() method correctly passes env vars (lines 298-300), but spawn_streaming() was missing this code path. This fix adds the same env var loop to spawn_streaming(), ensuring that credentials extracted from the host environment are properly passed to spawned agents. --- server/packages/agent-management/src/agents.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/packages/agent-management/src/agents.rs b/server/packages/agent-management/src/agents.rs index 65c7051..28b35ed 100644 --- a/server/packages/agent-management/src/agents.rs +++ b/server/packages/agent-management/src/agents.rs @@ -327,6 +327,12 @@ impl AgentManager { options.streaming_input = true; } let mut command = self.build_command(agent, &options)?; + + // Pass environment variables to the agent process (e.g., ANTHROPIC_API_KEY) + for (key, value) in &options.env { + command.env(key, value); + } + if matches!(agent, AgentId::Codex | AgentId::Claude) { command.stdin(Stdio::piped()); }