diff options
Diffstat (limited to 'src/pane.rs')
| -rw-r--r-- | src/pane.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/pane.rs b/src/pane.rs index 0ba411d0..c56cfbb3 100644 --- a/src/pane.rs +++ b/src/pane.rs @@ -147,6 +147,9 @@ impl PaneLaunchEnv { fn apply_pane_launch_env(cmd: &mut CommandBuilder, launch_env: &PaneLaunchEnv) { cmd.env_remove("CODEX_THREAD_ID"); + // OMP sets OMPCODE for shells it spawns. A pane launched from inside OMP + // must not inherit it or its root agent would look like a nested session. + cmd.env_remove("OMPCODE"); for (key, value) in &launch_env.extra { cmd.env(key, value); } @@ -3558,6 +3561,16 @@ mod tests { } #[test] + fn pane_launch_env_removes_outer_ompcode_marker() { + let mut cmd = CommandBuilder::new("shell"); + cmd.env("OMPCODE", "1"); + + apply_pane_launch_env(&mut cmd, &PaneLaunchEnv::default()); + + assert!(cmd.get_env("OMPCODE").is_none()); + } + + #[test] fn pane_terminal_identity_removes_outer_windows_terminal_session() { let mut cmd = CommandBuilder::new("shell"); cmd.env("WT_SESSION", "outer-session"); |
