agent: Fix thread summary generation (#28143)
Agus Zubiaga
created 8 months ago
#28102 introduced a bug where thread summaries wouldn't get generated
because they would get set to the default title instead of `None`.
Not adding a release note because the bug didn't make it to Preview.
Release Notes:
- N/A
Change summary
crates/agent/src/thread.rs | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
Detailed changes
@@ -391,17 +391,20 @@ impl Thread {
self.summary.clone().unwrap_or(Self::DEFAULT_SUMMARY)
}
- pub fn set_summary(&mut self, summary: impl Into<SharedString>, cx: &mut Context<Self>) {
- let summary = summary.into();
- let old_summary = self.summary_or_default();
-
- self.summary = if summary.is_empty() {
- Some(Self::DEFAULT_SUMMARY)
- } else {
- Some(summary)
+ pub fn set_summary(&mut self, new_summary: impl Into<SharedString>, cx: &mut Context<Self>) {
+ let Some(current_summary) = &self.summary else {
+ // Don't allow setting summary until generated
+ return;
};
- if Some(old_summary) != self.summary {
+ let mut new_summary = new_summary.into();
+
+ if new_summary.is_empty() {
+ new_summary = Self::DEFAULT_SUMMARY;
+ }
+
+ if current_summary != &new_summary {
+ self.summary = Some(new_summary);
cx.emit(ThreadEvent::SummaryChanged);
}
}