From 2562ff3ec8048fe829b5184112efe0e18ea70660 Mon Sep 17 00:00:00 2001 From: Dylan Hurd Date: Wed, 19 Nov 2025 15:33:10 -0800 Subject: [PATCH 1/3] fix(shell) fallback shells --- codex-rs/core/src/shell.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/codex-rs/core/src/shell.rs b/codex-rs/core/src/shell.rs index 7bfec089c5..45f0a7eae9 100644 --- a/codex-rs/core/src/shell.rs +++ b/codex-rs/core/src/shell.rs @@ -207,6 +207,8 @@ pub async fn default_user_shell() -> Shell { get_user_shell_path() .and_then(|shell| detect_shell_type(&shell)) .and_then(|shell_type| get_shell(shell_type, None)) + .or_else(|| get_shell(ShellType::Zsh, None)) + .or_else(|| get_shell(ShellType::Bash, None)) .unwrap_or(Shell::Unknown) } } From 6eee1d17480500b32fb8f646002b3f2d61b88645 Mon Sep 17 00:00:00 2001 From: Dylan Hurd Date: Wed, 19 Nov 2025 16:23:07 -0800 Subject: [PATCH 2/3] zsh only on windows --- codex-rs/core/src/shell.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/codex-rs/core/src/shell.rs b/codex-rs/core/src/shell.rs index 45f0a7eae9..192b77dd95 100644 --- a/codex-rs/core/src/shell.rs +++ b/codex-rs/core/src/shell.rs @@ -204,12 +204,19 @@ pub async fn default_user_shell() -> Shell { if cfg!(windows) { get_shell(ShellType::PowerShell, None).unwrap_or(Shell::Unknown) } else { - get_user_shell_path() + let user_default_shell = get_user_shell_path() .and_then(|shell| detect_shell_type(&shell)) - .and_then(|shell_type| get_shell(shell_type, None)) - .or_else(|| get_shell(ShellType::Zsh, None)) - .or_else(|| get_shell(ShellType::Bash, None)) - .unwrap_or(Shell::Unknown) + .and_then(|shell_type| get_shell(shell_type, None)); + + let shell_with_fallback = if cfg!(target_os = "macos") { + user_default_shell + .or_else(|| get_shell(ShellType::Zsh, None)) + .or_else(|| get_shell(ShellType::Bash, None)) + } else { + user_default_shell.or_else(|| get_shell(ShellType::Bash, None)) + }; + + shell_with_fallback.unwrap_or(Shell::Unknown) } } From 603bedb43a921871262cf46f876b33b59a37693f Mon Sep 17 00:00:00 2001 From: Dylan Hurd Date: Wed, 19 Nov 2025 16:27:02 -0800 Subject: [PATCH 3/3] zsh fallback on linux --- codex-rs/core/src/shell.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/codex-rs/core/src/shell.rs b/codex-rs/core/src/shell.rs index 192b77dd95..1fb2b97dd7 100644 --- a/codex-rs/core/src/shell.rs +++ b/codex-rs/core/src/shell.rs @@ -213,7 +213,9 @@ pub async fn default_user_shell() -> Shell { .or_else(|| get_shell(ShellType::Zsh, None)) .or_else(|| get_shell(ShellType::Bash, None)) } else { - user_default_shell.or_else(|| get_shell(ShellType::Bash, None)) + user_default_shell + .or_else(|| get_shell(ShellType::Bash, None)) + .or_else(|| get_shell(ShellType::Zsh, None)) }; shell_with_fallback.unwrap_or(Shell::Unknown)