From 1a0bbe09c69e1a3aa945ff24658c5012bd7df112 Mon Sep 17 00:00:00 2001 From: 1502538344 <1502538344@qq.com> Date: Sun, 12 Jul 2026 16:40:08 +0800 Subject: [PATCH] fix(executor): identify Grok CLI OAuth requests --- internal/runtime/executor/xai_executor.go | 1 + internal/runtime/executor/xai_executor_test.go | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/internal/runtime/executor/xai_executor.go b/internal/runtime/executor/xai_executor.go index db3e06f6..80d23483 100644 --- a/internal/runtime/executor/xai_executor.go +++ b/internal/runtime/executor/xai_executor.go @@ -1028,6 +1028,7 @@ func applyXAIChatHeaders(r *http.Request, auth *cliproxyauth.Auth, token string, if xaiIsCLIChatProxyBaseURL(xaiChatBaseURL(auth)) { r.Header.Set(xaiTokenAuthHeader, xaiTokenAuthValue) r.Header.Set(xaiClientVersionHeader, xaiClientVersionValue) + r.Header.Set("User-Agent", "xai-grok-workspace/"+xaiClientVersionValue) } applyXAICustomHeaders(r, auth) } diff --git a/internal/runtime/executor/xai_executor_test.go b/internal/runtime/executor/xai_executor_test.go index c43e8b5d..daa9f5ef 100644 --- a/internal/runtime/executor/xai_executor_test.go +++ b/internal/runtime/executor/xai_executor_test.go @@ -1733,6 +1733,9 @@ func TestApplyXAIChatHeaders(t *testing.T) { if got := req.Header.Get(xaiClientVersionHeader); got != "" { t.Fatalf("%s = %q, want empty for official API", xaiClientVersionHeader, got) } + if got := req.Header.Get("User-Agent"); got != "" { + t.Fatalf("User-Agent = %q, want empty for official API", got) + } }) t.Run("OAuth defaults to cli chat proxy headers", func(t *testing.T) { @@ -1757,6 +1760,9 @@ func TestApplyXAIChatHeaders(t *testing.T) { if got := req.Header.Get(xaiClientVersionHeader); got != xaiClientVersionValue { t.Fatalf("%s = %q, want %q", xaiClientVersionHeader, got, xaiClientVersionValue) } + if got := req.Header.Get("User-Agent"); got != "xai-grok-workspace/"+xaiClientVersionValue { + t.Fatalf("User-Agent = %q, want xai-grok-workspace/%s", got, xaiClientVersionValue) + } }) t.Run("no cli headers on custom gateway with using_api false", func(t *testing.T) { @@ -1775,6 +1781,9 @@ func TestApplyXAIChatHeaders(t *testing.T) { if got := req.Header.Get(xaiClientVersionHeader); got != "" { t.Fatalf("%s = %q, want empty for custom gateway", xaiClientVersionHeader, got) } + if got := req.Header.Get("User-Agent"); got != "" { + t.Fatalf("User-Agent = %q, want empty for custom gateway", got) + } }) t.Run("custom headers override cli chat proxy defaults", func(t *testing.T) {