aboutsummaryrefslogtreecommitdiff
path: root/src/pane.rs
diff options
context:
space:
mode:
authorJJ Liebig <jonathan.liebig@gmail.com>2026-09-12 15:52:18 +0400
committerGitHub <noreply@github.com>2026-09-12 13:52:18 +0200
commita5d5f6f654a32b27b2bd4dd8edd82f6795359269 (patch)
tree0b54a0fb4c1a136dff8224de617c8403756df19a /src/pane.rs
parentcc36a2943e85134768631d6d289e331c0edb940d (diff)
fix: ignore nested OMP session reports (#3994)
refs #2593
Diffstat (limited to 'src/pane.rs')
-rw-r--r--src/pane.rs13
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");