From 0154b6c68e76752a0cbdedcb156e862b8e18120a Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Tue, 17 Dec 2024 13:17:34 -0500 Subject: [PATCH 1/2] Allow both Assistants to be used when in the `assistant2` feature flag --- crates/zed/src/zed.rs | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index 7372ffea1103f..a6d87c783e514 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -240,7 +240,6 @@ pub fn initialize_workspace( let git_ui_feature_flag = cx.wait_for_flag::(); let prompt_builder = prompt_builder.clone(); - let is_staff = cx.is_staff(); cx.spawn(|workspace_handle, mut cx| async move { let project_panel = ProjectPanel::load(workspace_handle.clone(), cx.clone()); @@ -254,6 +253,8 @@ pub fn initialize_workspace( workspace_handle.clone(), cx.clone(), ); + let assistant_panel = + assistant::AssistantPanel::load(workspace_handle.clone(), prompt_builder, cx.clone()); let ( project_panel, @@ -262,6 +263,7 @@ pub fn initialize_workspace( channels_panel, chat_panel, notification_panel, + assistant_panel, ) = futures::try_join!( project_panel, outline_panel, @@ -269,6 +271,7 @@ pub fn initialize_workspace( channels_panel, chat_panel, notification_panel, + assistant_panel, )?; workspace_handle.update(&mut cx, |workspace, cx| { @@ -278,15 +281,15 @@ pub fn initialize_workspace( workspace.add_panel(channels_panel, cx); workspace.add_panel(chat_panel, cx); workspace.add_panel(notification_panel, cx); + workspace.add_panel(assistant_panel, cx); })?; - let git_ui_enabled = git_ui_feature_flag.await || is_staff; + let git_ui_enabled = git_ui_feature_flag.await; let git_panel = if git_ui_enabled { Some(git_ui::git_panel::GitPanel::load(workspace_handle.clone(), cx.clone()).await?) } else { None }; - workspace_handle.update(&mut cx, |workspace, cx| { if let Some(git_panel) = git_panel { workspace.add_panel(git_panel, cx); @@ -299,27 +302,20 @@ pub fn initialize_workspace( } else { assistant2_feature_flag.await }; - - let (assistant_panel, assistant2_panel) = if is_assistant2_enabled { - let assistant2_panel = - assistant2::AssistantPanel::load(workspace_handle.clone(), cx.clone()).await?; - - (None, Some(assistant2_panel)) + let assistant2_panel = if is_assistant2_enabled { + Some(assistant2::AssistantPanel::load(workspace_handle.clone(), cx.clone()).await?) } else { - let assistant_panel = - assistant::AssistantPanel::load(workspace_handle.clone(), prompt_builder, cx.clone()).await?; - - (Some(assistant_panel), None) + None }; workspace_handle.update(&mut cx, |workspace, cx| { - if let Some(assistant_panel) = assistant_panel { - workspace.add_panel(assistant_panel, cx); - workspace.register_action(assistant::AssistantPanel::inline_assist); - } - if let Some(assistant2_panel) = assistant2_panel { workspace.add_panel(assistant2_panel, cx); + } + + if is_assistant2_enabled { workspace.register_action(assistant2::InlineAssistant::inline_assist); + } else { + workspace.register_action(assistant::AssistantPanel::inline_assist); } }) }) From 2e04a50525be4067aef9cffd985dc5ec1be647a0 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Tue, 17 Dec 2024 13:20:27 -0500 Subject: [PATCH 2/2] Update action filtering --- crates/assistant2/src/assistant.rs | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/crates/assistant2/src/assistant.rs b/crates/assistant2/src/assistant.rs index 93f3c3bace397..9c13b4e979461 100644 --- a/crates/assistant2/src/assistant.rs +++ b/crates/assistant2/src/assistant.rs @@ -15,7 +15,6 @@ mod thread_history; mod thread_store; mod ui; -use std::any::TypeId; use std::sync::Arc; use client::Client; @@ -79,10 +78,6 @@ pub fn init(fs: Arc, client: Arc, stdout_is_a_pty: bool, cx: &mu } fn feature_gate_assistant2_actions(cx: &mut AppContext) { - const ASSISTANT1_NAMESPACE: &str = "assistant"; - - let inline_assist_actions = [TypeId::of::()]; - CommandPaletteFilter::update_global(cx, |filter, _cx| { filter.hide_namespace(NAMESPACE); }); @@ -91,17 +86,10 @@ fn feature_gate_assistant2_actions(cx: &mut AppContext) { if is_enabled { CommandPaletteFilter::update_global(cx, |filter, _cx| { filter.show_namespace(NAMESPACE); - filter.hide_namespace(ASSISTANT1_NAMESPACE); - - // We're hiding all of the `assistant: ` actions, but we want to - // keep the inline assist action around so we can use the same - // one in Assistant2. - filter.show_action_types(inline_assist_actions.iter()); }); } else { CommandPaletteFilter::update_global(cx, |filter, _cx| { filter.hide_namespace(NAMESPACE); - filter.show_namespace(ASSISTANT1_NAMESPACE); }); } })