refactor(openai): remove websocket body log truncation limit

This commit is contained in:
hkfires
2026-04-01 18:11:43 +08:00
parent acf98ed10e
commit 51a4379bf4
2 changed files with 6 additions and 70 deletions

View File

@@ -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 {

View File

@@ -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()