on main help sign in
feat(ui): preserve newlines in expanded tool content (#3239)
commitcbb6daaa80841614abc091f3201c5e635895c22e authorKieran Klukas <me@dunkirk.sh> dateWed 1 Jul 2026, 14:40 (3 months ago) parent5d42b2f
2 files changed+10−3
internal/ui/chat/agent.go+6−2 internal/ui/chat/bash.go+4−1
internal/ui/chat/agent.go+6−2
@@ -134,7 +134,9 @@ func (r *AgentToolRenderContext) RenderTool(sty *styles.Styles, width int, opts
134134 _ = json.Unmarshal([]byte(opts.ToolCall.Input), &params)
135135
136136 prompt := params.Prompt
137− prompt = strings.ReplaceAll(prompt, "\n", " ")
137+ if !opts.ExpandedContent {
138+ prompt = strings.ReplaceAll(prompt, "\n", " ")
139+ }
138140
139141 header := toolHeader(sty, opts.Status, "Agent", cappedWidth, opts)
140142 if opts.Compact {
@@ -295,7 +297,9 @@ func (r *AgenticFetchToolRenderContext) RenderTool(sty *styles.Styles, width int
295297 _ = json.Unmarshal([]byte(opts.ToolCall.Input), &params)
296298
297299 prompt := params.Prompt
298− prompt = strings.ReplaceAll(prompt, "\n", " ")
300+ if !opts.ExpandedContent {
301+ prompt = strings.ReplaceAll(prompt, "\n", " ")
302+ }
299303
300304 // Build header with optional URL param.
301305 var toolParams []string
internal/ui/chat/bash.go+4−1
@@ -62,7 +62,10 @@ func (b *BashToolRenderContext) RenderTool(sty *styles.Styles, width int, opts *
6262 }
6363
6464 // Regular bash command.
65− cmd := strings.ReplaceAll(params.Command, "\n", " ")
65+ cmd := params.Command
66+ if !opts.ExpandedContent {
67+ cmd = strings.ReplaceAll(cmd, "\n", " ")
68+ }
6669 cmd = strings.ReplaceAll(cmd, "\t", " ")
6770 toolParams := []string{cmd}
6871 if params.RunInBackground {