Skip to content

Commit 8caf474

Browse files
authored
Merge pull request router-for-me#3788 from shoucandanghehe/fix/codex-backend-request-id
fix(logging): track Codex backend request IDs
2 parents efd69d8 + dc3152d commit 8caf474

2 files changed

Lines changed: 45 additions & 0 deletions

File tree

internal/logging/gin_logger.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ var aiAPIPrefixes = []string{
2626
"/v1/responses",
2727
"/v1beta/models/",
2828
"/api/provider/",
29+
"/backend-api/codex/",
2930
}
3031

3132
const (

internal/logging/gin_logger_test.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,47 @@ func TestIsAIAPIPathIncludesImages(t *testing.T) {
7373
t.Fatalf("expected /v1/videos/video_123 to be treated as AI API path")
7474
}
7575
}
76+
77+
func TestIsAIAPIPathIncludesCodexBackend(t *testing.T) {
78+
paths := []string{
79+
"/backend-api/codex/responses",
80+
"/backend-api/codex/responses/compact",
81+
}
82+
for _, path := range paths {
83+
if !isAIAPIPath(path) {
84+
t.Fatalf("expected %s to be treated as AI API path", path)
85+
}
86+
}
87+
if isAIAPIPath("/backend-api/codex-status") {
88+
t.Fatalf("expected /backend-api/codex-status not to be treated as AI API path")
89+
}
90+
}
91+
92+
func TestGinLogrusLoggerAddsRequestIDForCodexBackend(t *testing.T) {
93+
gin.SetMode(gin.TestMode)
94+
95+
engine := gin.New()
96+
engine.Use(GinLogrusLogger())
97+
98+
var requestIDFromContext string
99+
var requestIDFromGin string
100+
engine.POST("/backend-api/codex/responses", func(c *gin.Context) {
101+
requestIDFromContext = GetRequestID(c.Request.Context())
102+
requestIDFromGin = GetGinRequestID(c)
103+
c.Status(http.StatusOK)
104+
})
105+
106+
req := httptest.NewRequest(http.MethodPost, "/backend-api/codex/responses", nil)
107+
recorder := httptest.NewRecorder()
108+
engine.ServeHTTP(recorder, req)
109+
110+
if recorder.Code != http.StatusOK {
111+
t.Fatalf("expected 200, got %d", recorder.Code)
112+
}
113+
if requestIDFromContext == "" {
114+
t.Fatalf("expected request ID in request context")
115+
}
116+
if requestIDFromGin != requestIDFromContext {
117+
t.Fatalf("expected Gin request ID %q to match context request ID %q", requestIDFromGin, requestIDFromContext)
118+
}
119+
}

0 commit comments

Comments
 (0)