History

refactor(runtime, openai): simplify header management and remove redundant websocket logging logic

Luis Pater committed 7 months ago

Commit ca11b231 parent 330e12d2 files · +9 −73Browse files

Unified · Split

2 files
  1. internal/runtime/executor/codex_websockets_executor.go +2 −3
  2. sdk/api/handlers/openai/openai_responses_websocket.go +7 −70
internal/runtime/executor/codex_websockets_executor.go+2−3
@@ -811,7 +811,7 @@ func applyCodexWebsocketHeaders(ctx context.Context, headers http.Header, auth * · 810 unmodified lines
811811 ginHeaders = ginCtx.Request.Header.Clone()
812812 }
813813
814− cfgUserAgent, cfgBetaFeatures := codexHeaderDefaults(cfg, auth)
814+ _, cfgBetaFeatures := codexHeaderDefaults(cfg, auth)
815815 ensureHeaderWithPriority(headers, ginHeaders, "x-codex-beta-features", cfgBetaFeatures, "")
816816 misc.EnsureHeader(headers, ginHeaders, "x-codex-turn-state", "")
817817 misc.EnsureHeader(headers, ginHeaders, "x-codex-turn-metadata", "")
@@ -827,11 +827,10 @@ func applyCodexWebsocketHeaders(ctx context.Context, headers http.Header, auth * · 9 unmodified lines
827827 betaHeader = codexResponsesWebsocketBetaHeaderValue
828828 }
829829 headers.Set("OpenAI-Beta", betaHeader)
830− ensureHeaderWithConfigPrecedence(headers, ginHeaders, "User-Agent", cfgUserAgent, codexUserAgent)
831−
832830 if strings.Contains(headers.Get("User-Agent"), "Mac OS") {
833831 misc.EnsureHeader(headers, ginHeaders, "Session_id", uuid.NewString())
834832 }
833+ headers.Del("User-Agent")
835834
836835 isAPIKey := false
837836 if auth != nil && auth.Attributes != nil {
sdk/api/handlers/openai/openai_responses_websocket.go+7−70
@@ -33,9 +33,6 @@ const ( · 32 unmodified lines
3333 wsDoneMarker = "[DONE]"
3434 wsTurnStateHeader = "x-codex-turn-state"
3535 wsRequestBodyKey = "REQUEST_BODY_OVERRIDE"
36− wsPayloadLogMaxSize = 2048
37− wsBodyLogMaxSize = 64 * 1024
38− wsBodyLogTruncated = "\n[websocket log truncated]\n"
3936 )
4037
4138 var responsesWebsocketUpgrader = websocket.Upgrader{
@@ -894,71 +891,18 @@ func appendWebsocketEvent(builder *strings.Builder, eventType string, payload [] · 852 unmodified lines
894891 if builder == nil {
895892 return
896893 }
897− if builder.Len() >= wsBodyLogMaxSize {
898− return
899− }
900894 trimmedPayload := bytes.TrimSpace(payload)
901895 if len(trimmedPayload) == 0 {
902896 return
903897 }
904898 if builder.Len() > 0 {
905− if !appendWebsocketLogString(builder, "\n") {
906− return
907− }
908− }
909− if !appendWebsocketLogString(builder, "websocket.") {
910− return
911− }
912− if !appendWebsocketLogString(builder, eventType) {
913− return
914− }
915− if !appendWebsocketLogString(builder, "\n") {
916− return
917− }
918− if !appendWebsocketLogBytes(builder, trimmedPayload, len(wsBodyLogTruncated)) {
919− appendWebsocketLogString(builder, wsBodyLogTruncated)
920− return
921− }
922− appendWebsocketLogString(builder, "\n")
923−}
924−
925−func appendWebsocketLogString(builder *strings.Builder, value string) bool {
926− if builder == nil {
927− return false
928− }
929− remaining := wsBodyLogMaxSize - builder.Len()
930− if remaining <= 0 {
931− return false
932− }
933− if len(value) <= remaining {
934− builder.WriteString(value)
935− return true
936− }
937− builder.WriteString(value[:remaining])
938− return false
939−}
940−
941−func appendWebsocketLogBytes(builder *strings.Builder, value []byte, reserveForSuffix int) bool {
942− if builder == nil {
943− return false
899+ builder.WriteString("\n")
944900 }
945− remaining := wsBodyLogMaxSize - builder.Len()
946− if remaining <= 0 {
947− return false
948− }
949− if len(value) <= remaining {
950− builder.Write(value)
951− return true
952− }
953− limit := remaining - reserveForSuffix
954− if limit < 0 {
955− limit = 0
956− }
957− if limit > len(value) {
958− limit = len(value)
959− }
960− builder.Write(value[:limit])
961− return false
901+ builder.WriteString("websocket.")
902+ builder.WriteString(eventType)
903+ builder.WriteString("\n")
904+ builder.Write(trimmedPayload)
905+ builder.WriteString("\n")
962906 }
963907
964908 func websocketPayloadEventType(payload []byte) string {
@@ -974,15 +918,8 @@ func websocketPayloadPreview(payload []byte) string { · 9 unmodified lines
974918 if len(trimmedPayload) == 0 {
975919 return "<empty>"
976920 }
977− preview := trimmedPayload
978− if len(preview) > wsPayloadLogMaxSize {
979− preview = preview[:wsPayloadLogMaxSize]
980− }
981− previewText := strings.ReplaceAll(string(preview), "\n", "\\n")
921+ previewText := strings.ReplaceAll(string(trimmedPayload), "\n", "\\n")
982922 previewText = strings.ReplaceAll(previewText, "\r", "\\r")
983− if len(trimmedPayload) > wsPayloadLogMaxSize {
984− return fmt.Sprintf("%s...(truncated,total=%d)", previewText, len(trimmedPayload))
985− }
986923 return previewText
987924 }
988925