From 000077facf2f89e394440a3f69d1486d358be682 Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Fri, 9 May 2025 16:53:30 -0400 Subject: [PATCH] agent: Fix reinsertion of creases when editing past messages (#30417) Just noticed this got lost when main was merged in #29828. Release Notes: - agent: Fixed the rendering of added context when editing past messages in a thread. --- crates/agent/src/active_thread.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/agent/src/active_thread.rs b/crates/agent/src/active_thread.rs index e15dd0404897709158101717dbe79ce5b877b7a2..9f466883cc26ebe57a4b6c8119c5d768c0d0a23b 100644 --- a/crates/agent/src/active_thread.rs +++ b/crates/agent/src/active_thread.rs @@ -3,9 +3,10 @@ use crate::context::{AgentContextHandle, RULES_ICON}; use crate::context_picker::{ContextPicker, MentionLink}; use crate::context_store::ContextStore; use crate::context_strip::{ContextStrip, ContextStripEvent, SuggestContextKind}; +use crate::message_editor::insert_message_creases; use crate::thread::{ - LastRestoreCheckpoint, MessageId, MessageSegment, Thread, ThreadError, ThreadEvent, - ThreadFeedback, + LastRestoreCheckpoint, MessageCrease, MessageId, MessageSegment, Thread, ThreadError, + ThreadEvent, ThreadFeedback, }; use crate::thread_store::{RulesLoadingError, TextThreadStore, ThreadStore}; use crate::tool_use::{PendingToolUseStatus, ToolUse}; @@ -1267,6 +1268,7 @@ impl ActiveThread { &mut self, message_id: MessageId, message_segments: &[MessageSegment], + message_creases: &[MessageCrease], window: &mut Window, cx: &mut Context, ) { @@ -1286,6 +1288,7 @@ impl ActiveThread { ); editor.update(cx, |editor, cx| { editor.set_text(message_text.clone(), window, cx); + insert_message_creases(editor, message_creases, &self.context_store, window, cx); editor.focus_handle(cx).focus(window); editor.move_to_end(&editor::actions::MoveToEnd, window, cx); }); @@ -1740,6 +1743,7 @@ impl ActiveThread { let Some(message) = self.thread.read(cx).message(message_id) else { return Empty.into_any(); }; + let message_creases = message.creases.clone(); let Some(rendered_message) = self.rendered_messages_by_id.get(&message_id) else { return Empty.into_any(); @@ -2031,6 +2035,7 @@ impl ActiveThread { this.start_editing_message( message_id, &message_segments, + &message_creases, window, cx, );