agent: Don't render Markdown for file names in tool calls (#49668)

Kavi Bidlack created

Closes #44184
Closes #45729

Before (incorrect; __init__ is bold):
<img width="391" height="87" alt="image"
src="https://github.com/user-attachments/assets/f453dbf1-224f-49fe-9d94-d0d83ad68ac5"
/>

After (\_\_init\_\_ renders correctly):
<img width="385" height="80" alt="image"
src="https://github.com/user-attachments/assets/1f7892f1-559a-436b-bde1-00c5c3bce8de"
/>

Release Notes:

- Agent: Fix rendering of filenames in edit tool header

Change summary

crates/acp_thread/src/acp_thread.rs | 5 +++++
1 file changed, 5 insertions(+)

Detailed changes

crates/acp_thread/src/acp_thread.rs 🔗

@@ -31,6 +31,7 @@ use task::{Shell, ShellBuilder};
 pub use terminal::*;
 use text::Bias;
 use ui::App;
+use util::markdown::MarkdownEscaped;
 use util::path_list::PathList;
 use util::{ResultExt, get_default_system_shell_preferring_bash, paths::PathStyle};
 use uuid::Uuid;
@@ -246,6 +247,8 @@ impl ToolCall {
     ) -> Result<Self> {
         let title = if tool_call.kind == acp::ToolKind::Execute {
             tool_call.title
+        } else if tool_call.kind == acp::ToolKind::Edit {
+            MarkdownEscaped(tool_call.title.as_str()).to_string()
         } else if let Some((first_line, _)) = tool_call.title.split_once("\n") {
             first_line.to_owned() + "…"
         } else {
@@ -334,6 +337,8 @@ impl ToolCall {
             self.label.update(cx, |label, cx| {
                 if self.kind == acp::ToolKind::Execute {
                     label.replace(title, cx);
+                } else if self.kind == acp::ToolKind::Edit {
+                    label.replace(MarkdownEscaped(&title).to_string(), cx)
                 } else if let Some((first_line, _)) = title.split_once("\n") {
                     label.replace(first_line.to_owned() + "…", cx);
                 } else {