summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/tui/internal/components/chat/message.go11
-rw-r--r--packages/tui/internal/components/chat/messages.go2
2 files changed, 9 insertions, 4 deletions
diff --git a/packages/tui/internal/components/chat/message.go b/packages/tui/internal/components/chat/message.go
index 5539687f3..31b345766 100644
--- a/packages/tui/internal/components/chat/message.go
+++ b/packages/tui/internal/components/chat/message.go
@@ -264,6 +264,8 @@ func renderToolDetails(
toolCall opencode.ToolPart,
width int,
) string {
+ measure := util.Measure("chat.renderToolDetails")
+ defer measure("tool", toolCall.Tool)
ignoredTools := []string{"todoread"}
if slices.Contains(ignoredTools, toolCall.Tool) {
return ""
@@ -368,13 +370,14 @@ func renderToolDetails(
}
}
case "bash":
+ command := toolInputMap["command"].(string)
+ body = fmt.Sprintf("```console\n$ %s\n", command)
stdout := metadata["stdout"]
if stdout != nil {
- command := toolInputMap["command"].(string)
- out := ansi.Strip(fmt.Sprintf("%s", stdout))
- body = fmt.Sprintf("```console\n> %s\n%s```", command, out)
- body = util.ToMarkdown(body, width, backgroundColor)
+ body += ansi.Strip(fmt.Sprintf("%s", stdout))
}
+ body += "```"
+ body = util.ToMarkdown(body, width, backgroundColor)
case "webfetch":
if format, ok := toolInputMap["format"].(string); ok && result != nil {
body = *result
diff --git a/packages/tui/internal/components/chat/messages.go b/packages/tui/internal/components/chat/messages.go
index 8cd0c1fde..932fecf65 100644
--- a/packages/tui/internal/components/chat/messages.go
+++ b/packages/tui/internal/components/chat/messages.go
@@ -234,6 +234,7 @@ func (m *messagesComponent) renderView() tea.Cmd {
}
case opencode.AssistantMessage:
+ messageMeasure := util.Measure("messages.Render")
hasTextPart := false
for partIndex, p := range message.Parts {
switch part := p.(type) {
@@ -365,6 +366,7 @@ func (m *messagesComponent) renderView() tea.Cmd {
}
}
}
+ messageMeasure()
}
error := ""