diff --git a/crates/acp_thread/src/acp_thread.rs b/crates/acp_thread/src/acp_thread.rs index 57cad6348644725af58565467a80355114bc2300..433abfb12e206bd1d289d9c5b418955917f22744 100644 --- a/crates/acp_thread/src/acp_thread.rs +++ b/crates/acp_thread/src/acp_thread.rs @@ -314,6 +314,13 @@ impl ToolCall { } if let Some(title) = title { + if self.kind == acp::ToolKind::Execute { + for terminal in self.terminals() { + terminal.update(cx, |terminal, cx| { + terminal.update_command_label(&title, cx); + }); + } + } self.label.update(cx, |label, cx| { if self.kind == acp::ToolKind::Execute { label.replace(title, cx); diff --git a/crates/acp_thread/src/terminal.rs b/crates/acp_thread/src/terminal.rs index 61da3c27b551cbdb156a86f120a8a7af4799af96..fceb816f7f1471af1e5e2fb87f82bf66978c3df7 100644 --- a/crates/acp_thread/src/terminal.rs +++ b/crates/acp_thread/src/terminal.rs @@ -167,6 +167,12 @@ impl Terminal { &self.command } + pub fn update_command_label(&self, label: &str, cx: &mut App) { + self.command.update(cx, |command, cx| { + command.replace(format!("```\n{}\n```", label), cx); + }); + } + pub fn working_dir(&self) -> &Option { &self.working_dir }