diff --git a/crates/agent/src/active_thread.rs b/crates/agent/src/active_thread.rs index 775d99d9be403e39570131a5daf1f0202118632b..c68944ea038adb485a890adb1cff93789b3d67b0 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, ) { @@ -1289,6 +1291,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); }); @@ -1743,6 +1746,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(); @@ -2034,6 +2038,7 @@ impl ActiveThread { this.start_editing_message( message_id, &message_segments, + &message_creases, window, cx, );