diff --git a/internal/runtime/executor/antigravity_executor_signature_test.go b/internal/runtime/executor/antigravity_executor_signature_test.go index 31955d35..226daf5c 100644 --- a/internal/runtime/executor/antigravity_executor_signature_test.go +++ b/internal/runtime/executor/antigravity_executor_signature_test.go @@ -21,6 +21,14 @@ func testGeminiSignaturePayload() string { return base64.StdEncoding.EncodeToString(payload) } +// testFakeClaudeSignature returns a base64 string starting with 'E' that passes +// the lightweight hasValidClaudeSignature check but has invalid protobuf content +// (first decoded byte 0x12 is correct, but no valid protobuf field 2 follows), +// so it fails deep validation in strict mode. +func testFakeClaudeSignature() string { + return base64.StdEncoding.EncodeToString([]byte{0x12, 0xFF, 0xFE, 0xFD}) +} + func testAntigravityAuth(baseURL string) *cliproxyauth.Auth { return &cliproxyauth.Auth{ Attributes: map[string]string{ @@ -40,7 +48,7 @@ func invalidClaudeThinkingPayload() []byte { { "role": "assistant", "content": [ - {"type": "thinking", "thinking": "bad", "signature": "` + testGeminiSignaturePayload() + `"}, + {"type": "thinking", "thinking": "bad", "signature": "` + testFakeClaudeSignature() + `"}, {"type": "text", "text": "hello"} ] }