From 1239ac53f8e1b5f061656c9d1a16813625c13c73 Mon Sep 17 00:00:00 2001 From: Michael Benfield Date: Thu, 8 Jan 2026 06:24:40 -0800 Subject: [PATCH] Inline assistant tools: no more feature flag (#46107) Release Notes: - The inline assistant now has the ability to display messages and will be less likely to insert non-code text. --- crates/agent_ui/src/buffer_codegen.rs | 2 - crates/agent_ui/src/inline_prompt_editor.rs | 136 +++++++++----------- crates/feature_flags/src/flags.rs | 6 - 3 files changed, 64 insertions(+), 80 deletions(-) diff --git a/crates/agent_ui/src/buffer_codegen.rs b/crates/agent_ui/src/buffer_codegen.rs index a296d4d20918fba6eb32bfcf7fcc657f9db2b3ac..57508d0d1a78f5843d51bfeec4908f1560bfdda2 100644 --- a/crates/agent_ui/src/buffer_codegen.rs +++ b/crates/agent_ui/src/buffer_codegen.rs @@ -6,7 +6,6 @@ use uuid::Uuid; use cloud_llm_client::CompletionIntent; use collections::HashSet; use editor::{Anchor, AnchorRangeExt, MultiBuffer, MultiBufferSnapshot, ToOffset as _, ToPoint}; -use feature_flags::{FeatureFlagAppExt as _, InlineAssistantUseToolFeatureFlag}; use futures::{ SinkExt, Stream, StreamExt, TryStreamExt as _, channel::mpsc, @@ -401,7 +400,6 @@ impl CodegenAlternative { pub fn use_streaming_tools(model: &dyn LanguageModel, cx: &App) -> bool { model.supports_streaming_tools() - && cx.has_flag::() && AgentSettings::get_global(cx).inline_assistant_use_streaming_tools } diff --git a/crates/agent_ui/src/inline_prompt_editor.rs b/crates/agent_ui/src/inline_prompt_editor.rs index 3542959dbf146d39d40a5851b6fa9ce00a5014cd..312e5a077ad7b9ef3e5a0132b77c3598b267a66e 100644 --- a/crates/agent_ui/src/inline_prompt_editor.rs +++ b/crates/agent_ui/src/inline_prompt_editor.rs @@ -8,7 +8,6 @@ use editor::{ ContextMenuOptions, Editor, EditorElement, EditorEvent, EditorMode, EditorStyle, MultiBuffer, actions::{MoveDown, MoveUp}, }; -use feature_flags::{FeatureFlagAppExt, InlineAssistantUseToolFeatureFlag}; use fs::Fs; use gpui::{ AnyElement, App, ClipboardItem, Context, Entity, EventEmitter, FocusHandle, Focusable, @@ -833,7 +832,6 @@ impl PromptEditor { .into_any_element(), ] } else { - let show_rating_buttons = cx.has_flag::(); let rated = matches!(self.session_state.completion, CompletionState::Rated); let accept = IconButton::new("accept", IconName::Check) @@ -849,78 +847,72 @@ impl PromptEditor { let mut buttons = Vec::new(); - if show_rating_buttons { - buttons.push( - h_flex() - .pl_1() - .gap_1() - .border_l_1() - .border_color(cx.theme().colors().border_variant) - .child( - IconButton::new("thumbs-up", IconName::ThumbsUp) - .shape(IconButtonShape::Square) - .map(|this| { - if rated { - this.disabled(true) - .icon_color(Color::Disabled) - .tooltip(move |_, cx| { - Tooltip::with_meta( - "Good Result", - None, - "You already rated this result", - cx, - ) - }) - } else { - this.icon_color(Color::Muted).tooltip( - move |_, cx| { - Tooltip::for_action( - "Good Result", - &ThumbsUpResult, - cx, - ) - }, + buttons.push( + h_flex() + .pl_1() + .gap_1() + .border_l_1() + .border_color(cx.theme().colors().border_variant) + .child( + IconButton::new("thumbs-up", IconName::ThumbsUp) + .shape(IconButtonShape::Square) + .map(|this| { + if rated { + this.disabled(true).icon_color(Color::Disabled).tooltip( + move |_, cx| { + Tooltip::with_meta( + "Good Result", + None, + "You already rated this result", + cx, + ) + }, + ) + } else { + this.icon_color(Color::Muted).tooltip(move |_, cx| { + Tooltip::for_action( + "Good Result", + &ThumbsUpResult, + cx, ) - } - }) - .on_click(cx.listener(|this, _, window, cx| { - this.thumbs_up(&ThumbsUpResult, window, cx); - })), - ) - .child( - IconButton::new("thumbs-down", IconName::ThumbsDown) - .shape(IconButtonShape::Square) - .map(|this| { - if rated { - this.disabled(true) - .icon_color(Color::Disabled) - .tooltip(move |_, cx| { - Tooltip::with_meta( - "Bad Result", - None, - "You already rated this result", - cx, - ) - }) - } else { - this.icon_color(Color::Muted).tooltip( - move |_, cx| { - Tooltip::for_action( - "Bad Result", - &ThumbsDownResult, - cx, - ) - }, + }) + } + }) + .on_click(cx.listener(|this, _, window, cx| { + this.thumbs_up(&ThumbsUpResult, window, cx); + })), + ) + .child( + IconButton::new("thumbs-down", IconName::ThumbsDown) + .shape(IconButtonShape::Square) + .map(|this| { + if rated { + this.disabled(true).icon_color(Color::Disabled).tooltip( + move |_, cx| { + Tooltip::with_meta( + "Bad Result", + None, + "You already rated this result", + cx, + ) + }, + ) + } else { + this.icon_color(Color::Muted).tooltip(move |_, cx| { + Tooltip::for_action( + "Bad Result", + &ThumbsDownResult, + cx, ) - } - }) - .on_click(cx.listener(|this, _, window, cx| { - this.thumbs_down(&ThumbsDownResult, window, cx); - })), - ) - .into_any_element(), - ); - } + }) + } + }) + .on_click(cx.listener(|this, _, window, cx| { + this.thumbs_down(&ThumbsDownResult, window, cx); + })), + ) + .into_any_element(), + ); buttons.push(accept); diff --git a/crates/feature_flags/src/flags.rs b/crates/feature_flags/src/flags.rs index fc9e35abed70c1af428d93de3367616e9b48f19a..f146795eead3cacef0ffb501b0803a685358d60d 100644 --- a/crates/feature_flags/src/flags.rs +++ b/crates/feature_flags/src/flags.rs @@ -12,12 +12,6 @@ impl FeatureFlag for PanicFeatureFlag { const NAME: &'static str = "panic"; } -pub struct InlineAssistantUseToolFeatureFlag; - -impl FeatureFlag for InlineAssistantUseToolFeatureFlag { - const NAME: &'static str = "inline-assistant-use-tool"; -} - pub struct AgentV2FeatureFlag; impl FeatureFlag for AgentV2FeatureFlag {