From 51a4379bf4b14a10445c642bec33be566c8b18e7 Mon Sep 17 00:00:00 2001 From: hkfires <10558748+hkfires@users.noreply.github.com> Date: Wed, 1 Apr 2026 18:11:43 +0800 Subject: [PATCH] refactor(openai): remove websocket body log truncation limit --- .../openai/openai_responses_websocket.go | 49 +++---------------- .../openai/openai_responses_websocket_test.go | 27 ---------- 2 files changed, 6 insertions(+), 70 deletions(-) diff --git a/sdk/api/handlers/openai/openai_responses_websocket.go b/sdk/api/handlers/openai/openai_responses_websocket.go index 6c43e931..9f065efd 100644 --- a/sdk/api/handlers/openai/openai_responses_websocket.go +++ b/sdk/api/handlers/openai/openai_responses_websocket.go @@ -33,8 +33,6 @@ const ( wsDoneMarker = "[DONE]" wsTurnStateHeader = "x-codex-turn-state" wsRequestBodyKey = "REQUEST_BODY_OVERRIDE" - wsBodyLogMaxSize = 32 * 1024 - wsBodyLogTruncated = "\n...[truncated]\n" ) var responsesWebsocketUpgrader = websocket.Upgrader{ @@ -945,53 +943,18 @@ func appendWebsocketEvent(builder *strings.Builder, eventType string, payload [] if builder == nil { return } - if builder.Len() >= wsBodyLogMaxSize { - return - } trimmedPayload := bytes.TrimSpace(payload) if len(trimmedPayload) == 0 { return } - - separator := []byte{} if builder.Len() > 0 { - separator = []byte("\n") + builder.WriteString("\n") } - header := []byte("websocket." + eventType + "\n") - footer := []byte("\n") - entryLen := len(separator) + len(header) + len(trimmedPayload) + len(footer) - remaining := wsBodyLogMaxSize - builder.Len() - - if entryLen <= remaining { - builder.Write(separator) - builder.Write(header) - builder.Write(trimmedPayload) - builder.Write(footer) - return - } - - marker := []byte(wsBodyLogTruncated) - if len(marker) > remaining { - builder.Write(marker[:remaining]) - return - } - - allowed := remaining - len(marker) - parts := [][]byte{separator, header, trimmedPayload, footer} - for _, part := range parts { - if allowed <= 0 { - break - } - if len(part) <= allowed { - builder.Write(part) - allowed -= len(part) - continue - } - builder.Write(part[:allowed]) - allowed = 0 - break - } - builder.Write(marker) + builder.WriteString("websocket.") + builder.WriteString(eventType) + builder.WriteString("\n") + builder.Write(trimmedPayload) + builder.WriteString("\n") } func websocketPayloadEventType(payload []byte) string { diff --git a/sdk/api/handlers/openai/openai_responses_websocket_test.go b/sdk/api/handlers/openai/openai_responses_websocket_test.go index 9e2a1ed6..157d6e2f 100644 --- a/sdk/api/handlers/openai/openai_responses_websocket_test.go +++ b/sdk/api/handlers/openai/openai_responses_websocket_test.go @@ -392,33 +392,6 @@ func TestAppendWebsocketEvent(t *testing.T) { } } -func TestAppendWebsocketEventTruncatesAtLimit(t *testing.T) { - var builder strings.Builder - payload := bytes.Repeat([]byte("x"), wsBodyLogMaxSize) - - appendWebsocketEvent(&builder, "request", payload) - - got := builder.String() - if len(got) > wsBodyLogMaxSize { - t.Fatalf("body log len = %d, want <= %d", len(got), wsBodyLogMaxSize) - } - if !strings.Contains(got, wsBodyLogTruncated) { - t.Fatalf("expected truncation marker in body log") - } -} - -func TestAppendWebsocketEventNoGrowthAfterLimit(t *testing.T) { - var builder strings.Builder - appendWebsocketEvent(&builder, "request", bytes.Repeat([]byte("x"), wsBodyLogMaxSize)) - initial := builder.String() - - appendWebsocketEvent(&builder, "response", []byte(`{"type":"response.completed"}`)) - - if builder.String() != initial { - t.Fatalf("builder grew after reaching limit") - } -} - func TestSetWebsocketRequestBody(t *testing.T) { gin.SetMode(gin.TestMode) recorder := httptest.NewRecorder()