From 157a07ae0763445fdb8a9dd7de324526c8a3ce9b Mon Sep 17 00:00:00 2001 From: Shiva Kumar Date: Thu, 20 Aug 2026 16:49:03 +0530 Subject: [PATCH 1/2] fix(mcp): add uvx PATH preflight check and actionable guidance (#5600) --- src/openhuman/mcp/config_servers/spawn_env.rs | 8 +++++++ src/openhuman/mcp/config_servers/stdio.rs | 24 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/openhuman/mcp/config_servers/spawn_env.rs b/src/openhuman/mcp/config_servers/spawn_env.rs index 5401992f47..53c243731f 100644 --- a/src/openhuman/mcp/config_servers/spawn_env.rs +++ b/src/openhuman/mcp/config_servers/spawn_env.rs @@ -148,6 +148,14 @@ fn version_manager_dirs() -> Vec { push_if_dir(&mut dirs, home.join(".cargo").join("bin")); dirs.extend(nvm_latest_bin_dir(&home)); } + #[cfg(windows)] + { + if let Some(local_app_data) = dirs::data_local_dir() { + push_if_dir(&mut dirs, local_app_data.join("Programs").join("uv").join("bin")); + push_if_dir(&mut dirs, local_app_data.join("Programs").join("uv")); + push_if_dir(&mut dirs, local_app_data.join("bin")); + } + } for fixed in ["/opt/homebrew/bin", "/usr/local/bin", "/usr/local/sbin"] { push_if_dir(&mut dirs, PathBuf::from(fixed)); } diff --git a/src/openhuman/mcp/config_servers/stdio.rs b/src/openhuman/mcp/config_servers/stdio.rs index a92a6d1106..0cd537ddb7 100644 --- a/src/openhuman/mcp/config_servers/stdio.rs +++ b/src/openhuman/mcp/config_servers/stdio.rs @@ -311,4 +311,28 @@ mod tests { "expected Node.js guidance, got: {err}" ); } + + #[tokio::test] + async fn initialize_missing_uvx_mentions_uv_and_docs_link() { + let client = McpStdioClient::new( + "uvx".to_string(), + Vec::new(), + vec![("PATH".to_string(), "/openhuman/does-not-exist".to_string())], + None, + McpClientIdentityConfig::default(), + ); + let err = client + .initialize() + .await + .expect_err("missing uvx must fail"); + let msg = err.to_string(); + assert!( + msg.contains("uv (Python)"), + "expected uv guidance, got: {msg}" + ); + assert!( + msg.contains("https://docs.astral.sh/uv/"), + "expected uv docs link, got: {msg}" + ); + } } From 3d612e000526667c991faefd90334d7575bd1e9b Mon Sep 17 00:00:00 2001 From: Shiva Kumar Date: Thu, 20 Aug 2026 17:20:15 +0530 Subject: [PATCH 2/2] style(mcp): format spawn_env per rustfmt --- src/openhuman/mcp/config_servers/spawn_env.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/openhuman/mcp/config_servers/spawn_env.rs b/src/openhuman/mcp/config_servers/spawn_env.rs index 53c243731f..597d122284 100644 --- a/src/openhuman/mcp/config_servers/spawn_env.rs +++ b/src/openhuman/mcp/config_servers/spawn_env.rs @@ -151,7 +151,10 @@ fn version_manager_dirs() -> Vec { #[cfg(windows)] { if let Some(local_app_data) = dirs::data_local_dir() { - push_if_dir(&mut dirs, local_app_data.join("Programs").join("uv").join("bin")); + push_if_dir( + &mut dirs, + local_app_data.join("Programs").join("uv").join("bin"), + ); push_if_dir(&mut dirs, local_app_data.join("Programs").join("uv")); push_if_dir(&mut dirs, local_app_data.join("bin")); }