From 06af052e6d9452ebd818ea8ae5769000dcfa413b Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Tue, 14 Oct 2025 18:07:51 -0400 Subject: [PATCH] windows: Temporarily use preview release of Gemini CLI (#40212) Workaround for disagreement about line endings that's fixed in the v0.9.0 series Release Notes: - N/A --- crates/project/src/agent_server_store.rs | 29 ++++++++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/crates/project/src/agent_server_store.rs b/crates/project/src/agent_server_store.rs index 1caaad3f929080515c3cd53e91e83ca9ad55fc30..8a3e68b63f87482ea6eeb426b9143ae3278a8267 100644 --- a/crates/project/src/agent_server_store.rs +++ b/crates/project/src/agent_server_store.rs @@ -577,6 +577,7 @@ fn get_or_npm_install_builtin_agent( package_name: SharedString, entrypoint_path: PathBuf, minimum_version: Option, + channel: &'static str, status_tx: Option>, new_version_available: Option>>, fs: Arc, @@ -648,9 +649,13 @@ fn get_or_npm_install_builtin_agent( let dir = dir.clone(); let fs = fs.clone(); async move { - let latest_version = - node_runtime.npm_package_latest_version(&package_name).await; - if let Ok(latest_version) = latest_version + // TODO remove the filter + let latest_version = node_runtime + .npm_package_latest_version(&package_name) + .await + .ok() + .filter(|_| channel == "latest"); + if let Some(latest_version) = latest_version && &latest_version != &file_name.to_string_lossy() { let download_result = download_latest_version( @@ -658,6 +663,7 @@ fn get_or_npm_install_builtin_agent( dir.clone(), node_runtime, package_name.clone(), + channel, ) .await .log_err(); @@ -681,6 +687,7 @@ fn get_or_npm_install_builtin_agent( dir.clone(), node_runtime, package_name.clone(), + channel, )) .await? .into() @@ -729,13 +736,14 @@ async fn download_latest_version( dir: PathBuf, node_runtime: NodeRuntime, package_name: SharedString, + channel: &'static str, ) -> Result { log::debug!("downloading latest version of {package_name}"); let tmp_dir = tempfile::tempdir_in(&dir)?; node_runtime - .npm_install_packages(tmp_dir.path(), &[(&package_name, "latest")]) + .npm_install_packages(tmp_dir.path(), &[(&package_name, channel)]) .await?; let version = node_runtime @@ -878,7 +886,17 @@ impl ExternalAgentServer for LocalGemini { GEMINI_NAME.into(), "@google/gemini-cli".into(), "node_modules/@google/gemini-cli/dist/index.js".into(), - Some("0.2.1".parse().unwrap()), + // TODO remove these windows-specific workarounds once v0.9.0 stable is released + if cfg!(windows) { + Some("0.9.0-preview.4".parse().unwrap()) + } else { + Some("0.2.1".parse().unwrap()) + }, + if cfg!(windows) { + "0.9.0-preview.4" + } else { + "latest" + }, status_tx, new_version_available_tx, fs, @@ -962,6 +980,7 @@ impl ExternalAgentServer for LocalClaudeCode { "@zed-industries/claude-code-acp".into(), "node_modules/@zed-industries/claude-code-acp/dist/index.js".into(), Some("0.5.2".parse().unwrap()), + "latest", status_tx, new_version_available_tx, fs,