windows: Unpin Gemini CLI (#40288)

Cole Miller created

Updates #40212

v0.9.0 is now stable and contains the fix for the line endings bug, so
we can return to installing from the stable channel as usual. This also
bumps the minimum version on Windows to v0.9.0 so that anyone on v0.8.x
or v0.9.0-preview.4 will be upgraded automatically.

Release Notes:

- N/A

Change summary

crates/project/src/agent_server_store.rs | 20 ++++----------------
1 file changed, 4 insertions(+), 16 deletions(-)

Detailed changes

crates/project/src/agent_server_store.rs 🔗

@@ -577,7 +577,6 @@ fn get_or_npm_install_builtin_agent(
     package_name: SharedString,
     entrypoint_path: PathBuf,
     minimum_version: Option<semver::Version>,
-    channel: &'static str,
     status_tx: Option<watch::Sender<SharedString>>,
     new_version_available: Option<watch::Sender<Option<String>>>,
     fs: Arc<dyn Fs>,
@@ -649,12 +648,10 @@ fn get_or_npm_install_builtin_agent(
                 let dir = dir.clone();
                 let fs = fs.clone();
                 async move {
-                    // TODO remove the filter
                     let latest_version = node_runtime
                         .npm_package_latest_version(&package_name)
                         .await
-                        .ok()
-                        .filter(|_| channel == "latest");
+                        .ok();
                     if let Some(latest_version) = latest_version
                         && &latest_version != &file_name.to_string_lossy()
                     {
@@ -663,7 +660,6 @@ fn get_or_npm_install_builtin_agent(
                             dir.clone(),
                             node_runtime,
                             package_name.clone(),
-                            channel,
                         )
                         .await
                         .log_err();
@@ -687,7 +683,6 @@ fn get_or_npm_install_builtin_agent(
                 dir.clone(),
                 node_runtime,
                 package_name.clone(),
-                channel,
             ))
             .await?
             .into()
@@ -736,14 +731,13 @@ async fn download_latest_version(
     dir: PathBuf,
     node_runtime: NodeRuntime,
     package_name: SharedString,
-    channel: &'static str,
 ) -> Result<String> {
     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, channel)])
+        .npm_install_packages(tmp_dir.path(), &[(&package_name, "latest")])
         .await?;
 
     let version = node_runtime
@@ -886,17 +880,12 @@ impl ExternalAgentServer for LocalGemini {
                     GEMINI_NAME.into(),
                     "@google/gemini-cli".into(),
                     "node_modules/@google/gemini-cli/dist/index.js".into(),
-                    // TODO remove these windows-specific workarounds once v0.9.0 stable is released
                     if cfg!(windows) {
-                        Some("0.9.0-preview.4".parse().unwrap())
+                        // v0.8.x on Windows has a bug that causes the initialize request to hang forever
+                        Some("0.9.0".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,
@@ -980,7 +969,6 @@ 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,