From 6b40449c3f31afffcbf76fddaa1c63f65f2a8608 Mon Sep 17 00:00:00 2001 From: ResidualBlood Date: Sun, 27 Sep 2026 11:27:00 +0000 Subject: [PATCH] fix(antigravity): exclude Signature-only events from meaningful data check MALFORMED_FUNCTION_CALL responses from upstream contain only thoughtSignature without any text, thinking, or tool calls. The previous fix still treated delta.Signature and block.Signature as meaningful data, so the empty-stream failover was never triggered. - Remove Signature from isMeaningfulAntigravityCompatEvent checks - Let hasMeaningfulData() also consult processor.HasContent() as a secondary guard for edge cases --- .../service/antigravity_gateway_compat_stream.go | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/backend/internal/service/antigravity_gateway_compat_stream.go b/backend/internal/service/antigravity_gateway_compat_stream.go index 307c37ac43..1a69bea601 100644 --- a/backend/internal/service/antigravity_gateway_compat_stream.go +++ b/backend/internal/service/antigravity_gateway_compat_stream.go @@ -141,7 +141,7 @@ func (s *antigravityCompatStreamSession) consume(line string) { } func (s *antigravityCompatStreamSession) hasMeaningfulData() bool { - return s.meaningfulData + return s.meaningfulData || s.processor.HasContent() } func (s *antigravityCompatStreamSession) finish() (*antigravityStreamResult, error) { @@ -223,23 +223,18 @@ func isMeaningfulAntigravityCompatEvent(event *apicompat.AnthropicStreamEvent) b if event == nil { return false } - if event.Type == "message_stop" { - return true - } if event.ContentBlock != nil { block := event.ContentBlock return block.Type == "tool_use" || block.Text != "" || block.Thinking != "" || - block.Signature != "" || block.Source != nil } if event.Delta != nil { delta := event.Delta return delta.Text != "" || delta.PartialJSON != "" || - delta.Thinking != "" || - delta.Signature != "" + delta.Thinking != "" } return false }