From 37a019ec7a04dcf613bc139e7a1d2a0f2f344571 Mon Sep 17 00:00:00 2001 From: "gcp-cherry-pick-bot[bot]" <98988430+gcp-cherry-pick-bot[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2025 13:01:45 -0500 Subject: [PATCH] zed: Add timeouts for feature flag resolution in workspace panel initialization (cherry-pick #22715) (#22721) Cherry-picked zed: Add timeouts for feature flag resolution in workspace panel initialization (#22715) This PR adds timeouts when resolving feature flags during workspace panel initialization so that we don't block indefinitely if Zed is not connected to the internet. Right now we wait for 5 seconds, but this value was chosen arbitrarily. Release Notes: - N/A Co-authored-by: Marshall Bowers --- crates/zed/src/zed.rs | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index f32441e840b3a208ddc0311f3baa3db77c4ed28c..f0057686006b92d4d1962bdb7d571e6b33d4b4fb 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -20,6 +20,7 @@ use command_palette_hooks::CommandPaletteFilter; use editor::ProposedChangesEditorToolbar; use editor::{scroll::Autoscroll, Editor, MultiBuffer}; use feature_flags::FeatureFlagAppExt; +use futures::FutureExt; use futures::{channel::mpsc, select_biased, StreamExt}; use gpui::{ actions, point, px, AppContext, AsyncAppContext, Context, FocusableView, MenuItem, @@ -348,7 +349,16 @@ fn initialize_panels(prompt_builder: Arc, cx: &mut ViewContext is_git_ui_enabled, + _ = timeout => false, + } + }; let git_panel = if git_ui_enabled { Some(git_ui::git_panel::GitPanel::load(workspace_handle.clone(), cx.clone()).await?) } else { @@ -363,7 +373,14 @@ fn initialize_panels(prompt_builder: Arc, cx: &mut ViewContext is_assistant2_enabled, + _ = timeout => false, + } }; let assistant2_panel = if is_assistant2_enabled { Some(assistant2::AssistantPanel::load(workspace_handle.clone(), cx.clone()).await?)