diff options
| author | adamdottv <[email protected]> | 2025-06-23 12:30:20 -0500 |
|---|---|---|
| committer | adamdottv <[email protected]> | 2025-06-23 12:30:20 -0500 |
| commit | 8d3b2fb8215b6b6b7b6a433cfba7e74bf0de93d1 (patch) | |
| tree | d63fc40e2cc9b970f5f889914a68cf624e4253e0 /packages/tui/internal/components | |
| parent | fa991920bc721ce15ce6921dd91e83abab2fa23e (diff) | |
| download | opencode-8d3b2fb8215b6b6b7b6a433cfba7e74bf0de93d1.tar.gz opencode-8d3b2fb8215b6b6b7b6a433cfba7e74bf0de93d1.zip | |
feat(tui): optimistically render user messages
Diffstat (limited to 'packages/tui/internal/components')
| -rw-r--r-- | packages/tui/internal/components/chat/message.go | 4 | ||||
| -rw-r--r-- | packages/tui/internal/components/chat/messages.go | 8 |
2 files changed, 9 insertions, 3 deletions
diff --git a/packages/tui/internal/components/chat/message.go b/packages/tui/internal/components/chat/message.go index e4b3fbb0e..c20bf6447 100644 --- a/packages/tui/internal/components/chat/message.go +++ b/packages/tui/internal/components/chat/message.go @@ -253,7 +253,7 @@ func renderText(message client.MessageInfo, text string, author string) string { func renderToolInvocation( toolCall client.MessageToolInvocationToolCall, result *string, - metadata client.MessageInfo_Metadata_Tool_AdditionalProperties, + metadata client.MessageMetadata_Tool_AdditionalProperties, showDetails bool, isLast bool, contentOnly bool, @@ -466,7 +466,7 @@ func renderToolInvocation( if metadata, ok := call["metadata"].(map[string]any); ok { data, _ = json.Marshal(metadata) - var toolMetadata client.MessageInfo_Metadata_Tool_AdditionalProperties + var toolMetadata client.MessageMetadata_Tool_AdditionalProperties _ = json.Unmarshal(data, &toolMetadata) step := renderToolInvocation( diff --git a/packages/tui/internal/components/chat/messages.go b/packages/tui/internal/components/chat/messages.go index 3c5e88c20..bdb6a6f82 100644 --- a/packages/tui/internal/components/chat/messages.go +++ b/packages/tui/internal/components/chat/messages.go @@ -58,6 +58,12 @@ func (m *messagesComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) { m.viewport.GotoBottom() m.tail = true return m, nil + case app.OptimisticMessageAddedMsg: + m.renderView() + if m.tail { + m.viewport.GotoBottom() + } + return m, nil case dialog.ThemeSelectedMsg: m.cache.Clear() return m, m.Reload() @@ -171,7 +177,7 @@ func (m *messagesComponent) renderView() { isLastToolInvocation := slices.Contains(lastToolIndices, i) toolInvocationPart := part.(client.MessagePartToolInvocation) toolCall, _ := toolInvocationPart.ToolInvocation.AsMessageToolInvocationToolCall() - metadata := client.MessageInfo_Metadata_Tool_AdditionalProperties{} + metadata := client.MessageMetadata_Tool_AdditionalProperties{} if _, ok := message.Metadata.Tool[toolCall.ToolCallId]; ok { metadata = message.Metadata.Tool[toolCall.ToolCallId] } |
