From d4a6a5ae15169c0d4d013acc6cb573dad87007e7 Mon Sep 17 00:00:00 2001 From: sususu98 Date: Wed, 15 Apr 2026 00:42:36 +0800 Subject: [PATCH] fix(antigravity): strip billing header from system instruction before upstream call The x-anthropic-billing-header block in the Claude system array is client-internal metadata and should not be forwarded to the Gemini upstream as part of systemInstruction.parts. --- .../antigravity/claude/antigravity_claude_request.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/translator/antigravity/claude/antigravity_claude_request.go b/internal/translator/antigravity/claude/antigravity_claude_request.go index 56aad530..8ae69648 100644 --- a/internal/translator/antigravity/claude/antigravity_claude_request.go +++ b/internal/translator/antigravity/claude/antigravity_claude_request.go @@ -101,6 +101,9 @@ func ConvertClaudeRequestToAntigravity(modelName string, inputRawJSON []byte, _ systemTypePromptResult := systemPromptResult.Get("type") if systemTypePromptResult.Type == gjson.String && systemTypePromptResult.String() == "text" { systemPrompt := systemPromptResult.Get("text").String() + if strings.HasPrefix(systemPrompt, "x-anthropic-billing-header:") { + continue + } partJSON := []byte(`{}`) if systemPrompt != "" { partJSON, _ = sjson.SetBytes(partJSON, "text", systemPrompt)