From 5ceb2eb707547387557625cb26a2429440fd67cc Mon Sep 17 00:00:00 2001 From: sawka Date: Tue, 4 Nov 2025 13:41:34 -0800 Subject: [PATCH 1/2] remove hostname from user facing error in wave ai --- pkg/aiusechat/openai/openai-backend.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/pkg/aiusechat/openai/openai-backend.go b/pkg/aiusechat/openai/openai-backend.go index 7edf2c0a9a..34be1c8721 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() From 40388814f207bd1a4ca18f8f8c969f3c10aa247b Mon Sep 17 00:00:00 2001 From: sawka Date: Tue, 4 Nov 2025 13:51:10 -0800 Subject: [PATCH 2/2] keep the message that had an error (already added to the backend store) --- frontend/app/aipanel/aipanel.tsx | 6 ------ 1 file changed, 6 deletions(-) diff --git a/frontend/app/aipanel/aipanel.tsx b/frontend/app/aipanel/aipanel.tsx index 6ef092909d..9edee784d4 100644 --- a/frontend/app/aipanel/aipanel.tsx +++ b/frontend/app/aipanel/aipanel.tsx @@ -243,12 +243,6 @@ const AIPanelComponentInner = memo(({ onClose }: AIPanelProps) => { 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; - }); }, });