Просмотр исходного кода

fix: don't display placeholder on error

adamdotdevin 6 месяцев назад
Родитель
Сommit
3c71fda648
1 измененных файлов с 14 добавлено и 16 удалено
  1. 14 16
      packages/tui/internal/components/chat/messages.go

+ 14 - 16
packages/tui/internal/components/chat/messages.go

@@ -289,6 +289,7 @@ func (m *messagesComponent) renderView() tea.Cmd {
 		for _, message := range m.app.Messages {
 			var content string
 			var cached bool
+			error := ""
 
 			switch casted := message.Info.(type) {
 			case opencode.UserMessage:
@@ -589,7 +590,19 @@ func (m *messagesComponent) renderView() tea.Cmd {
 					}
 				}
 
-				if !hasContent {
+				switch err := casted.Error.AsUnion().(type) {
+				case nil:
+				case opencode.AssistantMessageErrorMessageOutputLengthError:
+					error = "Message output length exceeded"
+				case opencode.ProviderAuthError:
+					error = err.Data.Message
+				case opencode.MessageAbortedError:
+					error = "Request was aborted"
+				case opencode.UnknownError:
+					error = err.Data.Message
+				}
+
+				if !hasContent && error == "" && !reverted {
 					content = renderText(
 						m.app,
 						message.Info,
@@ -614,21 +627,6 @@ func (m *messagesComponent) renderView() tea.Cmd {
 				}
 			}
 
-			error := ""
-			if assistant, ok := message.Info.(opencode.AssistantMessage); ok {
-				switch err := assistant.Error.AsUnion().(type) {
-				case nil:
-				case opencode.AssistantMessageErrorMessageOutputLengthError:
-					error = "Message output length exceeded"
-				case opencode.ProviderAuthError:
-					error = err.Data.Message
-				case opencode.MessageAbortedError:
-					error = "Request was aborted"
-				case opencode.UnknownError:
-					error = err.Data.Message
-				}
-			}
-
 			if error != "" && !reverted {
 				error = styles.NewStyle().Width(width - 6).Render(error)
 				error = renderContentBlock(