diff --git a/crates/agent_ui/src/conversation_view.rs b/crates/agent_ui/src/conversation_view.rs index 2ce8f7d73dfea301923f8a667d3d42088162cc00..b796f6dcfcf26d054ba79079f8dc8a885b911991 100644 --- a/crates/agent_ui/src/conversation_view.rs +++ b/crates/agent_ui/src/conversation_view.rs @@ -396,18 +396,18 @@ fn affects_thread_metadata(event: &AcpThreadEvent) -> bool { match event { AcpThreadEvent::NewEntry | AcpThreadEvent::TitleUpdated - | AcpThreadEvent::EntryUpdated(_) - | AcpThreadEvent::EntriesRemoved(_) | AcpThreadEvent::ToolAuthorizationRequested(_) | AcpThreadEvent::ToolAuthorizationReceived(_) - | AcpThreadEvent::Retry(_) | AcpThreadEvent::Stopped(_) | AcpThreadEvent::Error | AcpThreadEvent::LoadError(_) | AcpThreadEvent::Refusal | AcpThreadEvent::WorkingDirectoriesUpdated => true, // -- - AcpThreadEvent::TokenUsageUpdated + AcpThreadEvent::EntryUpdated(_) + | AcpThreadEvent::EntriesRemoved(_) + | AcpThreadEvent::Retry(_) + | AcpThreadEvent::TokenUsageUpdated | AcpThreadEvent::PromptCapabilitiesUpdated | AcpThreadEvent::AvailableCommandsUpdated(_) | AcpThreadEvent::ModeUpdated(_) diff --git a/crates/agent_ui/src/threads_archive_view.rs b/crates/agent_ui/src/threads_archive_view.rs index 6547187547c839bb1b804f933296089ffd435c28..b86d19f2013442690ebc3ca80afb71ae8b576e0e 100644 --- a/crates/agent_ui/src/threads_archive_view.rs +++ b/crates/agent_ui/src/threads_archive_view.rs @@ -320,11 +320,7 @@ impl ThreadsArchiveView { let preserve = self.preserve_selection_on_next_update; self.preserve_selection_on_next_update = false; - let saved_scroll = if preserve { - Some(self.list_state.logical_scroll_top()) - } else { - None - }; + let saved_scroll = self.list_state.logical_scroll_top(); self.list_state.reset(items.len()); self.items = items; @@ -337,9 +333,9 @@ impl ThreadsArchiveView { } } - if let Some(scroll_top) = saved_scroll { - self.list_state.scroll_to(scroll_top); + self.list_state.scroll_to(saved_scroll); + if preserve { if let Some(ix) = self.selection { let next = self.find_next_selectable(ix).or_else(|| { ix.checked_sub(1)