From ef0a4a56435d56053371fd09685c4c1d4dbac30f Mon Sep 17 00:00:00 2001 From: Luis Pater Date: Fri, 10 Jul 2026 02:38:53 +0800 Subject: [PATCH] feat(middleware): support logging for Codex response websockets - Updated request logging middleware to include `/backend-api/codex/responses` as a valid websocket path. - Enhanced unit tests to cover new websocket path scenarios. --- internal/api/middleware/request_logging.go | 2 +- internal/api/middleware/request_logging_test.go | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/internal/api/middleware/request_logging.go b/internal/api/middleware/request_logging.go index 7108390b..d3df474f 100644 --- a/internal/api/middleware/request_logging.go +++ b/internal/api/middleware/request_logging.go @@ -114,7 +114,7 @@ func isResponsesWebsocketUpgrade(req *http.Request) bool { if req == nil || req.URL == nil { return false } - if req.URL.Path != "/v1/responses" { + if req.URL.Path != "/v1/responses" && req.URL.Path != "/backend-api/codex/responses" { return false } return strings.EqualFold(strings.TrimSpace(req.Header.Get("Upgrade")), "websocket") diff --git a/internal/api/middleware/request_logging_test.go b/internal/api/middleware/request_logging_test.go index ed1be2e0..1fe1f4ec 100644 --- a/internal/api/middleware/request_logging_test.go +++ b/internal/api/middleware/request_logging_test.go @@ -52,6 +52,15 @@ func TestShouldSkipMethodForRequestLogging(t *testing.T) { }, skip: false, }, + { + name: "codex responses websocket upgrade should not skip", + req: &http.Request{ + Method: http.MethodGet, + URL: &url.URL{Path: "/backend-api/codex/responses"}, + Header: http.Header{"Upgrade": []string{"websocket"}}, + }, + skip: false, + }, { name: "responses get without upgrade should skip", req: &http.Request{ @@ -151,7 +160,7 @@ func TestAttachRequestLogSourcesUsesLoggerLogsDir(t *testing.T) { logger := logging.NewFileRequestLogger(true, logsDir, "", 0) recorder := httptest.NewRecorder() c, _ := gin.CreateTestContext(recorder) - c.Request = httptest.NewRequest(http.MethodGet, "/v1/responses", nil) + c.Request = httptest.NewRequest(http.MethodGet, "/backend-api/codex/responses", nil) c.Request.Header.Set("Upgrade", "websocket") attachRequestLogSources(c, logger, true)