From 839dac198fd9699de3cf56ab79d80250d3cb0043 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Thu, 12 Feb 2026 11:58:21 -0300 Subject: [PATCH] agent_ui: Add some UI tweaks to the subagents thread (#49030) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Just some relatively small UI adjustments, like adding the forward arrow to make it clearer there's a hierarchy between the parent thread and the subagent thread, and a check icon to comunicate the subagent thread is done. Screenshot 2026-02-12 at 11  47@2x - [x] Code Reviewed - [x] Manual QA Release Notes: - N/A --- assets/icons/forward_arrow_up.svg | 4 ++++ .../src/acp/thread_view/active_thread.rs | 23 +++++++++++++++---- crates/icons/src/icons.rs | 1 + 3 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 assets/icons/forward_arrow_up.svg diff --git a/assets/icons/forward_arrow_up.svg b/assets/icons/forward_arrow_up.svg new file mode 100644 index 0000000000000000000000000000000000000000..b4abcb2083206ffe288cf38a13348055e9521c4f --- /dev/null +++ b/assets/icons/forward_arrow_up.svg @@ -0,0 +1,4 @@ + + + + diff --git a/crates/agent_ui/src/acp/thread_view/active_thread.rs b/crates/agent_ui/src/acp/thread_view/active_thread.rs index 49c95f21cf0949afc50853c80b65986d65a9e528..1f377b345026547046044825903ba0c9a55fa412 100644 --- a/crates/agent_ui/src/acp/thread_view/active_thread.rs +++ b/crates/agent_ui/src/acp/thread_view/active_thread.rs @@ -2306,6 +2306,8 @@ impl AcpThreadView { let title = self.thread.read(cx).title(); let server_view = self.server_view.clone(); + let is_done = self.thread.read(cx).status() == ThreadStatus::Idle; + Some( h_flex() .h(Tab::container_height(cx)) @@ -2314,9 +2316,20 @@ impl AcpThreadView { .w_full() .justify_between() .border_b_1() - .border_color(cx.theme().colors().border_variant) + .border_color(cx.theme().colors().border) .bg(cx.theme().colors().editor_background.opacity(0.2)) - .child(Label::new(title).color(Color::Muted)) + .child( + h_flex() + .child( + Icon::new(IconName::ForwardArrowUp) + .size(IconSize::Small) + .color(Color::Muted), + ) + .child(Label::new(title).color(Color::Muted).ml_2().mr_1()) + .when(is_done, |this| { + this.child(Icon::new(IconName::Check).color(Color::Success)) + }), + ) .child( IconButton::new("minimize_subagent", IconName::Minimize) .icon_size(IconSize::Small) @@ -3616,6 +3629,8 @@ impl AcpThreadView { if let Some(editing_index) = self.editing_message && editing_index < entry_ix { + let is_subagent = self.is_subagent(); + let backdrop = div() .id(("backdrop", entry_ix)) .size_full() @@ -3629,7 +3644,7 @@ impl AcpThreadView { div() .relative() .child(primary) - .child(backdrop) + .when(!is_subagent, |this| this.child(backdrop)) .into_any_element() } else { primary @@ -5876,7 +5891,7 @@ impl AcpThreadView { if is_canceled_or_failed { "Subagent Canceled" } else { - "Spawning Subagent…" + "Creating Subagent…" } .into() }); diff --git a/crates/icons/src/icons.rs b/crates/icons/src/icons.rs index 7daefe5ddc089f84222a855f9fb9005e9dab6d07..1f6e9c5fa15f5b8eca0bfd84a08ff168dbc7f6c6 100644 --- a/crates/icons/src/icons.rs +++ b/crates/icons/src/icons.rs @@ -134,6 +134,7 @@ pub enum IconName { FontSize, FontWeight, ForwardArrow, + ForwardArrowUp, GenericClose, GenericMaximize, GenericMinimize,