fix(antigravity): preserve valid tool-call history - #99
Conversation
|
@V1ki i'm using this branch for some days, so, i think maybe it should be merged. tested A LOT on several antigravity sessions. Most tests changing from Codex to Antigravity to Codex to Antigravity mid session. |
17076d0 to
4278b1d
Compare
|
感谢 @victorwads 的贡献,也感谢在 #97 里把两个问题梳理清楚! 我先合并了 #100(它修的是同一个
方便的话请再看一眼 rebase 后的分支,没问题我就合并。 Thanks @victorwads for the contribution, and for laying out both failures so clearly in #97! I merged #100 first (it fixes the same non-object
Please take a quick look at the rebased branch when you have a moment. If it looks good to you, I'll merge it. |
|
Thanks |
Summary
Fixes two Antigravity/Gemini tool-history serialization failures:
functionResponse.responsevalue to a JSON object, as required by the Gemini API. Arrays, primitives, andnullare wrapped as{ result: value }; non-JSON text remains{ output: text }.skip_thought_signature_validatorsentinel for the first unsigned function call in each Gemini 3 tool-call step. This permits users to switch an existing conversation from another provider (for example GPT/Codex) to Gemini 3 without a 400 validation failure.Context
When serialized tool results have a top-level array, Antigravity rejects the request with an error such as:
When a prior provider's tool call is replayed without a Gemini thought signature, Gemini 3 rejects it with:
The fallback sentinel is the documented approach for manually constructed or cross-model histories that do not carry Gemini signatures.
Tests
null, and numeric tool-result payloads.Closes #97
References: