diff --git a/internal/ui/chat/user.go b/internal/ui/chat/user.go index f355ad0fd545bafa10994f8aea421b185f5eceac..b948d63e147a3288d8c331526b0ede1e61cfaffd 100644 --- a/internal/ui/chat/user.go +++ b/internal/ui/chat/user.go @@ -74,8 +74,12 @@ func (m *UserMessageItem) RawRender(width int) string { } renderer := common.MarkdownRenderer(m.sty, cappedWidth) + mu := common.LockMarkdownRenderer(renderer) + mu.Lock() result, err := renderer.Render(msgContent) + mu.Unlock() + if err != nil { content = msgContent } else { @@ -102,7 +106,12 @@ func (m *UserMessageItem) renderSkillInvocation(content string, width int) strin if err := xml.Unmarshal([]byte(content), &skill); err != nil { // If parsing fails, just render as markdown renderer := common.MarkdownRenderer(m.sty, width) + mu := common.LockMarkdownRenderer(renderer) + + mu.Lock() result, err := renderer.Render(content) + mu.Unlock() + if err != nil { return content }