From de9c5c0226f8f31b9ce7dfef8b9ad401126ca3b5 Mon Sep 17 00:00:00 2001 From: Eric Traut Date: Sat, 16 May 2026 00:39:27 -0700 Subject: [PATCH] Fix Windows doctor npm root probe (#22967) ## Why On Windows npm-managed installs expose the working shim as `npm.cmd`. `codex doctor` probed bare `npm`, which could incorrectly report that npm global-root inspection was unavailable even when the install was healthy. Fixes #22964. ## What changed - Use `npm.cmd` for the doctor npm-root probe on Windows. - Keep the existing `npm` probe on non-Windows platforms. --- codex-rs/cli/src/doctor.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/codex-rs/cli/src/doctor.rs b/codex-rs/cli/src/doctor.rs index a3742baa7..f2b1bca6d 100644 --- a/codex-rs/cli/src/doctor.rs +++ b/codex-rs/cli/src/doctor.rs @@ -105,6 +105,10 @@ const COLOR_ENV_VARS: &[&str] = &[ const TERMINAL_DIMENSION_ENV_VARS: &[&str] = &["COLUMNS", "LINES"]; const TERMINFO_ENV_VARS: &[&str] = &["TERMINFO", "TERMINFO_DIRS"]; const LOCALE_ENV_VARS: &[&str] = &["LC_ALL", "LC_CTYPE", "LANG"]; +#[cfg(windows)] +const NPM_COMMAND: &str = "npm.cmd"; +#[cfg(not(windows))] +const NPM_COMMAND: &str = "npm"; const REMOTE_TERMINAL_ENV_VARS: &[&str] = &[ "SSH_TTY", "SSH_CONNECTION", @@ -884,7 +888,7 @@ fn npm_global_root_check() -> NpmRootCheck { return NpmRootCheck::MissingPackageRoot; }; - let output = match run_command("npm", ["root", "-g"]) { + let output = match run_command(NPM_COMMAND, ["root", "-g"]) { Ok(output) => output, Err(err) => return NpmRootCheck::NpmUnavailable(err), };