From 5edb6f34cac2ca7aa9b06541aa6f4ace408f7e32 Mon Sep 17 00:00:00 2001 From: Mike Sawka Date: Tue, 4 Nov 2025 14:40:41 -0800 Subject: [PATCH] small changes to wave ai error handling (#2520) --- frontend/app/aipanel/aipanel.tsx | 6 ------ pkg/aiusechat/openai/openai-backend.go | 18 +++++++++++++++++- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/frontend/app/aipanel/aipanel.tsx b/frontend/app/aipanel/aipanel.tsx index 1fb3c05ba..7a2c7e3b1 100644 --- a/frontend/app/aipanel/aipanel.tsx +++ b/frontend/app/aipanel/aipanel.tsx @@ -239,12 +239,6 @@ const AIPanelComponentInner = memo(() => { onError: (error) => { console.error("AI Chat error:", error); model.setError(error.message || "An error occurred"); - setMessages((prevMessages) => { - if (prevMessages.length > 0 && prevMessages[prevMessages.length - 1].role === "user") { - return prevMessages.slice(0, -1); - } - return prevMessages; - }); }, }); diff --git a/pkg/aiusechat/openai/openai-backend.go b/pkg/aiusechat/openai/openai-backend.go index 7edf2c0a9..34be1c872 100644 --- a/pkg/aiusechat/openai/openai-backend.go +++ b/pkg/aiusechat/openai/openai-backend.go @@ -25,6 +25,22 @@ import ( "github.com/wavetermdev/waveterm/pkg/web/sse" ) +// sanitizeHostnameInError removes the specific hostname from error messages +func sanitizeHostnameInError(err error, baseURL string) error { + if err == nil { + return nil + } + + errStr := err.Error() + parsedURL, parseErr := url.Parse(baseURL) + if parseErr == nil && parsedURL.Host != "" { + errStr = strings.ReplaceAll(errStr, baseURL, "AI service") + errStr = strings.ReplaceAll(errStr, parsedURL.Host, "host") + } + + return fmt.Errorf("%s", errStr) +} + // ---------- OpenAI wire types (subset) ---------- type OpenAIChatMessage struct { @@ -495,7 +511,7 @@ func RunOpenAIChatStep( resp, err := httpClient.Do(req) if err != nil { - return nil, nil, nil, err + return nil, nil, nil, sanitizeHostnameInError(err, chatOpts.Config.BaseURL) } defer resp.Body.Close()