From 267cf569435123a145dcfb6fd49dbb2832276bab Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Thu, 15 Jan 2026 23:14:47 -0300 Subject: [PATCH] agent_ui: Fix preview for images and creases in queue entries (#46964) This PR fixes the fact that we weren't showing any @-mentions (files, images, etc.) in the queue preview. Release Notes: - Agent: FIxed a bug with the message queue in the agent panel where @-mentions weren't being displayed in the message preview within the queue entries list. --- crates/agent_ui/src/acp/thread_view.rs | 35 +++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/crates/agent_ui/src/acp/thread_view.rs b/crates/agent_ui/src/acp/thread_view.rs index d135bbd809d860e63f6e872b4afe63b175fd6ac5..39923b58b59c475eaedddde28928fb2aef0d615e 100644 --- a/crates/agent_ui/src/acp/thread_view.rs +++ b/crates/agent_ui/src/acp/thread_view.rs @@ -5836,16 +5836,43 @@ impl AcpThreadView { let icon_color = if is_next { Color::Accent } else { Color::Muted }; let queue_len = self.message_queue.len(); - let preview = queued + let preview: String = queued .content .iter() - .find_map(|block| match block { + .filter_map(|block| match block { acp::ContentBlock::Text(text) => { - text.text.lines().next().map(str::to_owned) + let first_line = text.text.lines().next()?; + if first_line.is_empty() { + None + } else { + Some(first_line.to_owned()) + } + } + acp::ContentBlock::Image(_) => Some("@Image".to_owned()), + acp::ContentBlock::Audio(_) => Some("@Audio".to_owned()), + acp::ContentBlock::ResourceLink(link) => { + let name = link.uri.rsplit('/').next().unwrap_or(&link.uri); + Some(format!("@{}", name)) + } + acp::ContentBlock::Resource(resource) => { + let uri = match &resource.resource { + acp::EmbeddedResourceResource::TextResourceContents(r) => { + Some(&r.uri) + } + acp::EmbeddedResourceResource::BlobResourceContents(r) => { + Some(&r.uri) + } + _ => None, + }; + uri.map(|uri| { + let name = uri.rsplit('/').next().unwrap_or(uri); + format!("@{}", name) + }) } _ => None, }) - .unwrap_or_default(); + .collect::>() + .join(""); h_flex() .group("queue_entry")