From c76dfd4e0edabab9000628b1560ab8ab379eadb8 Mon Sep 17 00:00:00 2001 From: Luis Pater Date: Sun, 6 Sep 2026 15:27:01 +0800 Subject: [PATCH] chore(codex): update codex user-agent to 0.153.3 - Update default Codex executor user-agent and model override headers to `codex-tui/0.153.3`. Closes: #5521 --- .../optimize_multi_agent_v2_test.go | 16 ++++++++-------- internal/registry/model_definitions_test.go | 2 +- internal/registry/models/models.json | 8 ++++---- .../runtime/executor/codex_executor_request.go | 2 +- .../executor/codex_executor_spawn_agent_test.go | 2 +- .../executor/codex_websockets_executor_test.go | 2 +- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/internal/client/codex/optimize-multi-agent-v2/optimize_multi_agent_v2_test.go b/internal/client/codex/optimize-multi-agent-v2/optimize_multi_agent_v2_test.go index 08f7779c3..aae21007d 100644 --- a/internal/client/codex/optimize-multi-agent-v2/optimize_multi_agent_v2_test.go +++ b/internal/client/codex/optimize-multi-agent-v2/optimize_multi_agent_v2_test.go @@ -30,7 +30,7 @@ func TestIsCodexMultiAgentClient(t *testing.T) { }, { name: "codex tui", - userAgent: "codex-tui/0.145.0 (Mac OS 26.5.2; arm64) iTerm.app/3.6.11 (codex-tui; 0.145.0)", + userAgent: "codex-tui/0.153.3 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.153.3)", want: true, }, { @@ -237,7 +237,7 @@ func TestOptimizeCodexMultiAgentV2RequestSkipsNamespaceConflict(t *testing.T) { t.Parallel() payload := []byte(`{"tools":[{"type":"namespace","name":"collaboration","tools":[{"type":"function","name":"spawn_agent"}]},{"type":"namespace","name":"collaboration-optimize","tools":[]}]}`) - headers := http.Header{"User-Agent": []string{"codex-tui/0.145.0"}} + headers := http.Header{"User-Agent": []string{"codex-tui/0.153.3"}} cfg := &config.Config{Codex: config.CodexConfig{OptimizeMultiAgentV2: true}} got, optimized := OptimizeCodexMultiAgentV2Request(context.Background(), headers, payload, cfg) if optimized { @@ -516,13 +516,13 @@ func TestRewriteCodexMultiAgentV2InputConditions(t *testing.T) { { name: "codex tui enabled", cfg: &config.Config{Codex: config.CodexConfig{OptimizeMultiAgentV2: true}}, - userAgent: "codex-tui/0.145.0", + userAgent: "codex-tui/0.153.3", want: true, }, { name: "optimization disabled", cfg: &config.Config{}, - userAgent: "codex-tui/0.145.0", + userAgent: "codex-tui/0.153.3", }, { name: "unrelated client", @@ -607,7 +607,7 @@ func TestRewriteCodexSpawnAgentDescriptionDisabledLeavesPayloadUnchanged(t *test t.Parallel() payload := []byte(`{"tools":[{"type":"function","name":"spawn_agent","description":"unchanged","parameters":{"properties":{"message":{"encrypted":true}}}}]}`) - headers := http.Header{"User-Agent": []string{"codex-tui/0.145.0"}} + headers := http.Header{"User-Agent": []string{"codex-tui/0.153.3"}} got := RewriteCodexSpawnAgentDescription(context.Background(), headers, payload, &config.Config{}) if string(got) != string(payload) { t.Fatalf("disabled optimization changed payload: %s", got) @@ -645,13 +645,13 @@ func TestReplaceCodexSpawnAgentModelsNormalizesSectionsAndPreservesInstructions( func TestCodexClientUserAgentPrefersGinRequest(t *testing.T) { gin.SetMode(gin.TestMode) request := httptest.NewRequest(http.MethodPost, "/v1/responses", nil) - request.Header.Set("User-Agent", "codex-tui/0.145.0") + request.Header.Set("User-Agent", "codex-tui/0.153.3") ginCtx, _ := gin.CreateTestContext(httptest.NewRecorder()) ginCtx.Request = request ctx := context.WithValue(context.Background(), "gin", ginCtx) headers := http.Header{"User-Agent": []string{"overridden-client/1.0"}} - if got := codexClientUserAgent(ctx, headers); got != "codex-tui/0.145.0" { + if got := codexClientUserAgent(ctx, headers); got != "codex-tui/0.153.3" { t.Fatalf("codexClientUserAgent() = %q, want gin request User-Agent", got) } } @@ -785,7 +785,7 @@ func TestOptimizeCodexMultiAgentV2RequestRemovesEncryptionInAdditionalTools(t *t ]} ] }`) - headers := http.Header{"User-Agent": []string{"codex-tui/0.145.0"}} + headers := http.Header{"User-Agent": []string{"codex-tui/0.153.3"}} cfg := &config.Config{Codex: config.CodexConfig{OptimizeMultiAgentV2: true}} got, _ := OptimizeCodexMultiAgentV2Request(context.Background(), headers, payload, cfg) diff --git a/internal/registry/model_definitions_test.go b/internal/registry/model_definitions_test.go index 934802fb2..6d940165a 100644 --- a/internal/registry/model_definitions_test.go +++ b/internal/registry/model_definitions_test.go @@ -10,7 +10,7 @@ func TestGetStaticModelDefinitionsByChannelSupportsGeminiInteractions(t *testing } func TestModelOverrideHeadersFromEmbeddedModels(t *testing.T) { - const wantUA = "codex-tui/0.144.0 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.144.0)" + const wantUA = "codex-tui/0.153.3 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.153.3)" got := ModelOverrideHeaders("gpt-5.6-luna") if got == nil { t.Fatal("ModelOverrideHeaders(gpt-5.6-luna) = nil, want headers") diff --git a/internal/registry/models/models.json b/internal/registry/models/models.json index 1e9422ab1..2a54c3103 100644 --- a/internal/registry/models/models.json +++ b/internal/registry/models/models.json @@ -2459,7 +2459,7 @@ }, "config": { "override_header": { - "user-agent": "codex-tui/0.144.0 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.144.0)", + "user-agent": "codex-tui/0.153.3 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.153.3)", "originator": "codex-tui" } }, @@ -2651,7 +2651,7 @@ }, "config": { "override_header": { - "user-agent": "codex-tui/0.144.0 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.144.0)", + "user-agent": "codex-tui/0.153.3 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.153.3)", "originator": "codex-tui" } }, @@ -2872,7 +2872,7 @@ }, "config": { "override_header": { - "user-agent": "codex-tui/0.144.0 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.144.0)", + "user-agent": "codex-tui/0.153.3 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.153.3)", "originator": "codex-tui" } }, @@ -3093,7 +3093,7 @@ }, "config": { "override_header": { - "user-agent": "codex-tui/0.144.0 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.144.0)", + "user-agent": "codex-tui/0.153.3 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.153.3)", "originator": "codex-tui" } }, diff --git a/internal/runtime/executor/codex_executor_request.go b/internal/runtime/executor/codex_executor_request.go index e713eaf89..6842ed8f4 100644 --- a/internal/runtime/executor/codex_executor_request.go +++ b/internal/runtime/executor/codex_executor_request.go @@ -23,7 +23,7 @@ import ( ) const ( - codexUserAgent = "codex-tui/0.146.0 (Mac OS 26.5.0; arm64) iTerm.app/3.6.10 (codex-tui; 0.146.0)" + codexUserAgent = "codex-tui/0.153.3 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.153.3)" codexOriginator = "codex-tui" codexDefaultImageToolModel = "gpt-image-2" codexResponsesLiteHeader = "X-OpenAI-Internal-Codex-Responses-Lite" diff --git a/internal/runtime/executor/codex_executor_spawn_agent_test.go b/internal/runtime/executor/codex_executor_spawn_agent_test.go index 40355c6fc..a8ada0f49 100644 --- a/internal/runtime/executor/codex_executor_spawn_agent_test.go +++ b/internal/runtime/executor/codex_executor_spawn_agent_test.go @@ -234,7 +234,7 @@ func codexSpawnAgentTestPayload() []byte { func codexSpawnAgentTestContext() context.Context { request := httptest.NewRequest(http.MethodPost, "/v1/responses", nil) - request.Header.Set("User-Agent", "codex-tui/0.145.0") + request.Header.Set("User-Agent", "codex-tui/0.153.3") ginCtx, _ := gin.CreateTestContext(httptest.NewRecorder()) ginCtx.Request = request return context.WithValue(context.Background(), "gin", ginCtx) diff --git a/internal/runtime/executor/codex_websockets_executor_test.go b/internal/runtime/executor/codex_websockets_executor_test.go index 43f750112..765deca38 100644 --- a/internal/runtime/executor/codex_websockets_executor_test.go +++ b/internal/runtime/executor/codex_websockets_executor_test.go @@ -1822,7 +1822,7 @@ func TestApplyCodexWebsocketHeaders_EmptyAPIKey_OmitsAuthorizationAndOAuthHeader } func TestApplyModelHeaderOverridesFromModelConfig(t *testing.T) { - const wantUA = "codex-tui/0.144.0 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.144.0)" + const wantUA = "codex-tui/0.153.3 (Mac OS 26.5.1; arm64) iTerm.app/3.6.11 (codex-tui; 0.153.3)" req, err := http.NewRequest(http.MethodPost, "https://example.com/responses", nil) if err != nil { t.Fatalf("NewRequest() error = %v", err)