mirror of
https://github.com/aljazceru/opencode.git
synced 2026-01-07 01:44:56 +01:00
fix: tui not showing some errors
This commit is contained in:
@@ -656,6 +656,8 @@ func (m *messagesComponent) renderView() tea.Cmd {
|
||||
case nil:
|
||||
case opencode.AssistantMessageErrorMessageOutputLengthError:
|
||||
error = "Message output length exceeded"
|
||||
case opencode.AssistantMessageErrorAPIError:
|
||||
error = err.Data.Message
|
||||
case opencode.ProviderAuthError:
|
||||
error = err.Data.Message
|
||||
case opencode.MessageAbortedError:
|
||||
|
||||
@@ -656,12 +656,26 @@ func (a Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
case opencode.EventListResponseEventSessionError:
|
||||
switch err := msg.Properties.Error.AsUnion().(type) {
|
||||
case nil:
|
||||
// No error details provided
|
||||
case opencode.ProviderAuthError:
|
||||
slog.Error("Failed to authenticate with provider", "error", err.Data.Message)
|
||||
return a, toast.NewErrorToast("Provider error: " + err.Data.Message)
|
||||
case opencode.UnknownError:
|
||||
slog.Error("Server error", "name", err.Name, "message", err.Data.Message)
|
||||
return a, toast.NewErrorToast(err.Data.Message, toast.WithTitle(string(err.Name)))
|
||||
case opencode.EventListResponseEventSessionErrorPropertiesErrorAPIError:
|
||||
slog.Error("API error", "message", err.Data.Message, "statusCode", err.Data.StatusCode)
|
||||
return a, toast.NewErrorToast(err.Data.Message, toast.WithTitle(string(err.Name)))
|
||||
case opencode.MessageAbortedError:
|
||||
// Message was aborted - this is expected when user cancels, so just log it
|
||||
slog.Debug("Message aborted", "message", err.Data.Message)
|
||||
case opencode.EventListResponseEventSessionErrorPropertiesErrorMessageOutputLengthError:
|
||||
slog.Error("Message output length error")
|
||||
return a, toast.NewErrorToast("Message output length exceeded limit")
|
||||
default:
|
||||
// Handle any unhandled error types
|
||||
slog.Error("Unhandled session error type", "type", fmt.Sprintf("%T", err))
|
||||
return a, toast.NewErrorToast("An unexpected error occurred")
|
||||
}
|
||||
case opencode.EventListResponseEventSessionCompacted:
|
||||
if msg.Properties.SessionID == a.app.Session.ID {
|
||||
|
||||
Reference in New Issue
Block a user