From 5427a9e4224ed090c0b39bdfdc482b69963a8d57 Mon Sep 17 00:00:00 2001 From: song Date: Sat, 17 Jan 2026 20:41:06 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"fix(antigravity):=20Claude=20?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E9=80=8F=E4=BC=A0=20tool=5Fuse=20=E7=9A=84?= =?UTF-8?q?=20signature"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 81b865b89dedb30a7efe98d6b4a4e268f9b99d60. --- backend/internal/pkg/antigravity/request_transformer.go | 7 ++----- .../internal/pkg/antigravity/request_transformer_test.go | 8 ++++---- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/backend/internal/pkg/antigravity/request_transformer.go b/backend/internal/pkg/antigravity/request_transformer.go index 9b703187..adafa196 100644 --- a/backend/internal/pkg/antigravity/request_transformer.go +++ b/backend/internal/pkg/antigravity/request_transformer.go @@ -389,13 +389,10 @@ func buildParts(content json.RawMessage, toolIDToName map[string]string, allowDu ID: block.ID, }, } - // tool_use 的 signature 处理: - // - Gemini 模型:使用 dummy signature(跳过 thought_signature 校验) - // - Claude 模型:透传上游返回的真实 signature(Vertex/Google 需要完整签名链路) + // 只有 Gemini 模型使用 dummy signature + // Claude 模型不设置 signature(避免验证问题) if allowDummyThought { part.ThoughtSignature = dummyThoughtSignature - } else if block.Signature != "" && block.Signature != dummyThoughtSignature { - part.ThoughtSignature = block.Signature } parts = append(parts, part) diff --git a/backend/internal/pkg/antigravity/request_transformer_test.go b/backend/internal/pkg/antigravity/request_transformer_test.go index 60ee6f63..eca3107e 100644 --- a/backend/internal/pkg/antigravity/request_transformer_test.go +++ b/backend/internal/pkg/antigravity/request_transformer_test.go @@ -114,7 +114,7 @@ func TestBuildParts_ToolUseSignatureHandling(t *testing.T) { } }) - t.Run("Claude model - preserve valid signature for tool_use", func(t *testing.T) { + t.Run("Claude model - no signature for tool_use", func(t *testing.T) { toolIDToName := make(map[string]string) parts, _, err := buildParts(json.RawMessage(content), toolIDToName, false) if err != nil { @@ -123,9 +123,9 @@ func TestBuildParts_ToolUseSignatureHandling(t *testing.T) { if len(parts) != 1 || parts[0].FunctionCall == nil { t.Fatalf("expected 1 functionCall part, got %+v", parts) } - // Claude 模型应透传有效的 signature(Vertex/Google 需要完整签名链路) - if parts[0].ThoughtSignature != "sig_tool_abc" { - t.Fatalf("expected preserved tool signature %q, got %q", "sig_tool_abc", parts[0].ThoughtSignature) + // Claude 模型不设置 signature + if parts[0].ThoughtSignature != "" { + t.Fatalf("expected no tool signature for Claude, got %q", parts[0].ThoughtSignature) } }) }