From 3a3792622e59c7f2dc20f9c0236167161e4a5035 Mon Sep 17 00:00:00 2001 From: caner-akca <94343893+caner-akca@users.noreply.github.com> Date: Sun, 30 Aug 2026 03:02:22 +0300 Subject: fix: report the foreground group leader's cwd, not a descendant's (#3386) refs #3270 --- src/pane.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/pane.rs b/src/pane.rs index bd3f7ffd..7340629c 100644 --- a/src/pane.rs +++ b/src/pane.rs @@ -3013,12 +3013,12 @@ impl PaneRuntime { .or_else(|| crate::platform::foreground_process_group_id(pid)); let leader_cwd = foreground_pgid.and_then(absolute_process_cwd); - if leader_cwd.as_ref() == shell_cwd.as_ref() { - foreground_member_cwd_different_from_shell(pid, shell_cwd.as_ref()).or(leader_cwd) - } else { - leader_cwd - .or_else(|| foreground_member_cwd_different_from_shell(pid, shell_cwd.as_ref())) - } + // The group leader's cwd is authoritative (issue #3270): a helper + // process that chdirs elsewhere inside the same foreground group + // must not override it. Scan other members only when the leader's + // cwd cannot be read at all. + leader_cwd + .or_else(|| foreground_member_cwd_different_from_shell(pid, shell_cwd.as_ref())) } #[cfg(not(unix))] -- cgit v1.2.3