From 660237796a20bccaf8859345bdcf1aab4d9e5fbd Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Sun, 8 Mar 2026 22:08:54 -0700 Subject: [PATCH] Remove redundant env var filtering in TerminalBuilder The sandbox_exec_main wrapper already scrubs the inherited process environment before exec-ing the real shell. The TerminalBuilder filtering only pruned the additive env HashMap, not the inherited environment, so it was both redundant and incomplete. The single filtering point in sandbox_exec_main is the authoritative one. --- crates/terminal/src/terminal.rs | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/crates/terminal/src/terminal.rs b/crates/terminal/src/terminal.rs index e94302ab2b1c652f05e179f2e38c4267fa326ec4..2113a8cfea8cb363b3661d9eed03d8437bc72b1e 100644 --- a/crates/terminal/src/terminal.rs +++ b/crates/terminal/src/terminal.rs @@ -470,26 +470,6 @@ impl TerminalBuilder { insert_zed_terminal_env(&mut env, &version); - // When sandbox is enabled, filter env vars to only the allowed set. - // Zed-specific vars (inserted above) are always kept. - if let Some(ref sandbox) = sandbox_config { - let allowed: collections::HashSet<&str> = sandbox - .allowed_env_vars - .iter() - .map(|s| s.as_str()) - .collect(); - let zed_vars = [ - "ZED_TERM", - "TERM_PROGRAM", - "TERM", - "COLORTERM", - "TERM_PROGRAM_VERSION", - ]; - env.retain(|key, _| { - allowed.contains(key.as_str()) || zed_vars.contains(&key.as_str()) - }); - } - #[derive(Default)] struct ShellParams { program: String,