From 1e57e88e43d49dcf183645328cc634284bf8f6d8 Mon Sep 17 00:00:00 2001 From: 4fuu Date: Sat, 25 Apr 2026 05:26:33 +0000 Subject: [PATCH] fix(openai): bump codex CLI version from 0.104.0 to 0.125.0 The hardcoded codex CLI version (0.104.0) causes upstream rejection when using gpt-5.5 with compact, as the server treats the request as an outdated client and returns 400/502. Update codexCLIVersion, codexCLIUserAgent, and openAICodexProbeVersion to 0.125.0 to match the current Codex CLI release. Fixes #1933, #1887, #1865 Related: #1609, #1298, #849 --- backend/internal/handler/openai_gateway_compact_log_test.go | 6 +++--- backend/internal/service/account_usage_service.go | 2 +- backend/internal/service/openai_gateway_service.go | 4 ++-- backend/internal/service/openai_oauth_passthrough_test.go | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/internal/handler/openai_gateway_compact_log_test.go b/backend/internal/handler/openai_gateway_compact_log_test.go index 062f318b..e18509b4 100644 --- a/backend/internal/handler/openai_gateway_compact_log_test.go +++ b/backend/internal/handler/openai_gateway_compact_log_test.go @@ -116,7 +116,7 @@ func TestLogOpenAIRemoteCompactOutcome_Succeeded(t *testing.T) { rec := httptest.NewRecorder() c, _ := gin.CreateTestContext(rec) c.Request = httptest.NewRequest(http.MethodPost, "/v1/responses/compact", nil) - c.Request.Header.Set("User-Agent", "codex_cli_rs/0.104.0") + c.Request.Header.Set("User-Agent", "codex_cli_rs/0.125.0") c.Set(opsModelKey, "gpt-5.3-codex") c.Set(opsAccountIDKey, int64(123)) c.Header("x-request-id", "rid-compact-ok") @@ -142,7 +142,7 @@ func TestLogOpenAIRemoteCompactOutcome_Failed(t *testing.T) { rec := httptest.NewRecorder() c, _ := gin.CreateTestContext(rec) c.Request = httptest.NewRequest(http.MethodPost, "/responses/compact", nil) - c.Request.Header.Set("User-Agent", "codex_cli_rs/0.104.0") + c.Request.Header.Set("User-Agent", "codex_cli_rs/0.125.0") c.Status(http.StatusBadGateway) h := &OpenAIGatewayHandler{} @@ -180,7 +180,7 @@ func TestOpenAIResponses_CompactUnauthorizedLogsFailed(t *testing.T) { c, _ := gin.CreateTestContext(rec) c.Request = httptest.NewRequest(http.MethodPost, "/v1/responses/compact", strings.NewReader(`{"model":"gpt-5.3-codex"}`)) c.Request.Header.Set("Content-Type", "application/json") - c.Request.Header.Set("User-Agent", "codex_cli_rs/0.104.0") + c.Request.Header.Set("User-Agent", "codex_cli_rs/0.125.0") h := &OpenAIGatewayHandler{} h.Responses(c) diff --git a/backend/internal/service/account_usage_service.go b/backend/internal/service/account_usage_service.go index 8d5bcec8..68ba8f8c 100644 --- a/backend/internal/service/account_usage_service.go +++ b/backend/internal/service/account_usage_service.go @@ -110,7 +110,7 @@ const ( apiQueryMaxJitter = 800 * time.Millisecond // 用量查询最大随机延迟 windowStatsCacheTTL = 1 * time.Minute openAIProbeCacheTTL = 10 * time.Minute - openAICodexProbeVersion = "0.104.0" + openAICodexProbeVersion = "0.125.0" ) // UsageCache 封装账户使用量相关的缓存 diff --git a/backend/internal/service/openai_gateway_service.go b/backend/internal/service/openai_gateway_service.go index 2d05c3ea..c5f15bd5 100644 --- a/backend/internal/service/openai_gateway_service.go +++ b/backend/internal/service/openai_gateway_service.go @@ -40,7 +40,7 @@ const ( // OpenAI Platform API for API Key accounts (fallback) openaiPlatformAPIURL = "https://api.openai.com/v1/responses" openaiStickySessionTTL = time.Hour // 粘性会话TTL - codexCLIUserAgent = "codex_cli_rs/0.104.0" + codexCLIUserAgent = "codex_cli_rs/0.125.0" // codex_cli_only 拒绝时单个请求头日志长度上限(字符) codexCLIOnlyHeaderValueMaxBytes = 256 @@ -54,7 +54,7 @@ const ( openAIWSRetryBackoffMaxDefault = 2 * time.Second openAIWSRetryJitterRatioDefault = 0.2 openAICompactSessionSeedKey = "openai_compact_session_seed" - codexCLIVersion = "0.104.0" + codexCLIVersion = "0.125.0" // Codex 限额快照仅用于后台展示/诊断,不需要每个成功请求都立即落库。 openAICodexSnapshotPersistMinInterval = 30 * time.Second ) diff --git a/backend/internal/service/openai_oauth_passthrough_test.go b/backend/internal/service/openai_oauth_passthrough_test.go index 69c9de42..049ffdd8 100644 --- a/backend/internal/service/openai_oauth_passthrough_test.go +++ b/backend/internal/service/openai_oauth_passthrough_test.go @@ -734,7 +734,7 @@ func TestOpenAIGatewayService_OAuthPassthrough_NonCodexUAFallbackToCodexUA(t *te require.NoError(t, err) require.Equal(t, false, gjson.GetBytes(upstream.lastBody, "store").Bool()) require.Equal(t, true, gjson.GetBytes(upstream.lastBody, "stream").Bool()) - require.Equal(t, "codex_cli_rs/0.104.0", upstream.lastReq.Header.Get("User-Agent")) + require.Equal(t, "codex_cli_rs/0.125.0", upstream.lastReq.Header.Get("User-Agent")) } func TestOpenAIGatewayService_CodexCLIOnly_RejectsNonCodexClient(t *testing.T) {