fix(antigravity): keep the signature from a standalone thought part - #941
Conversation
A reasoning signature arriving on its own thought part was dropped by the replay cache, so the next turn failed upstream validation. Pair it with the functionCall that follows in the same parts array. Fixes lidge-jun#897
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe replay observer now carries signatures from standalone thought parts to the next function call in the same parts array. Call-local signatures take precedence. Tests cover pairing order, state isolation, and invalid non-thought signatures. ChangesAntigravity replay cache
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Ingwannu
left a comment
There was a problem hiding this comment.
Confirmed as a real provider-compatibility defect. The patch keeps the repair narrow: same-array forward pairing only, call-local signature precedence, no cross-observation carry, no non-thought attachment, and no change to the existing replay cache limits or identity key.
Verification:
- applied cleanly on current
dev(3cd75ab0) bun test tests/google-antigravity-replay.test.ts: 39 passedbun run typecheck: passed- repository Cross-platform CI and React Doctor: passed
No blocking findings.
…idge-jun#941) A reasoning signature arriving on its own thought part was dropped by the replay cache, so the next turn failed upstream validation. Pair it with the functionCall that follows in the same parts array. Fixes lidge-jun#897
Summary
Fixes #897. When Antigravity returns the reasoning signature on its own thought part instead of on the functionCall part, the replay cache dropped it, so the next turn went out unsigned and upstream rejected it. The cache now pairs a standalone thought signature with the functionCall that follows it in the same parts array. A signature on the call part itself still wins, an unpaired one is dropped at the end of the array, and byte accounting is untouched. Pairing stays within one observed array; a thought and its call split across streamed chunks is out of scope since the reported captures are same-array.
Verification
tests/google-antigravity-replay.test.ts: the standalone shape replays, the call's own signature wins, no backward or cross-observe pairing, and non-thought parts do not attach.[{thought, thoughtSignature}, {functionCall}]lost its signature before the fix and round-trips after.bun run test,typecheck,lint:gui,privacy:scan.Checklist
Summary by CodeRabbit
Bug Fixes
Tests