fix: align codex compat ua with tui

This commit is contained in:
lpf
2026-03-18 10:46:42 +08:00
parent ceb34d6c7e
commit 971ac8ddb9
3 changed files with 11 additions and 10 deletions

View File

@@ -846,7 +846,7 @@ func applyCodexWebsocketHeaders(headers http.Header, attempt authAttempt, option
} }
headers.Set("User-Agent", codexCompatUserAgent) headers.Set("User-Agent", codexCompatUserAgent)
if attempt.kind != "api_key" { if attempt.kind != "api_key" {
headers.Set("Originator", "codex_cli_rs") headers.Set("Originator", codexCompatOriginator)
if attempt.session != nil { if attempt.session != nil {
accountID := firstNonEmpty( accountID := firstNonEmpty(
strings.TrimSpace(attempt.session.AccountID), strings.TrimSpace(attempt.session.AccountID),

View File

@@ -99,7 +99,7 @@ func TestApplyAttemptProviderHeaders_CodexOAuth(t *testing.T) {
if got := req.Header.Get("Accept"); got != "text/event-stream" { if got := req.Header.Get("Accept"); got != "text/event-stream" {
t.Fatalf("expected sse accept header, got %q", got) t.Fatalf("expected sse accept header, got %q", got)
} }
if got := req.Header.Get("Originator"); got != "codex_cli_rs" { if got := req.Header.Get("Originator"); got != codexCompatOriginator {
t.Fatalf("expected codex originator, got %q", got) t.Fatalf("expected codex originator, got %q", got)
} }
if got := req.Header.Get("Chatgpt-Account-Id"); got != "acct_123" { if got := req.Header.Get("Chatgpt-Account-Id"); got != "acct_123" {

View File

@@ -21,13 +21,14 @@ import (
) )
const ( const (
codexCompatBaseURL = "https://chatgpt.com/backend-api/codex" codexCompatBaseURL = "https://chatgpt.com/backend-api/codex"
codexClientVersion = "0.101.0" codexClientVersion = "0.115.0-alpha.27"
codexCompatUserAgent = "codex_cli_rs/0.101.0 (Mac OS 26.0.1; arm64) Apple_Terminal/464" codexCompatOriginator = "codex-tui"
qwenCompatBaseURL = "https://portal.qwen.ai/v1" codexCompatUserAgent = "codex-tui/0.115.0-alpha.27 (Mac OS 26.0.1; arm64) Apple_Terminal/464"
qwenCompatUserAgent = "QwenCode/0.10.3 (darwin; arm64)" qwenCompatBaseURL = "https://portal.qwen.ai/v1"
kimiCompatBaseURL = "https://api.kimi.com/coding/v1" qwenCompatUserAgent = "QwenCode/0.10.3 (darwin; arm64)"
kimiCompatUserAgent = "KimiCLI/1.10.6" kimiCompatBaseURL = "https://api.kimi.com/coding/v1"
kimiCompatUserAgent = "KimiCLI/1.10.6"
) )
type providerAPIRuntimeState struct { type providerAPIRuntimeState struct {
@@ -910,7 +911,7 @@ func applyAttemptProviderHeaders(req *http.Request, attempt authAttempt, provide
req.Header.Set("Accept", "application/json") req.Header.Set("Accept", "application/json")
} }
if attempt.kind != "api_key" { if attempt.kind != "api_key" {
req.Header.Set("Originator", "codex_cli_rs") req.Header.Set("Originator", codexCompatOriginator)
if attempt.session != nil && strings.TrimSpace(attempt.session.AccountID) != "" { if attempt.session != nil && strings.TrimSpace(attempt.session.AccountID) != "" {
req.Header.Set("Chatgpt-Account-Id", strings.TrimSpace(attempt.session.AccountID)) req.Header.Set("Chatgpt-Account-Id", strings.TrimSpace(attempt.session.AccountID))
} }