fix(gemini): accept signature-only reasoning exhaustion

This commit is contained in:
ZheFox
2026-09-03 17:57:40 +08:00
parent f8b4382a54
commit f6884eb8c4
5 changed files with 235 additions and 11 deletions
@@ -3774,6 +3774,33 @@ mod tests {
assert!(message.is_none());
}
#[test]
fn invalid_gemini_provider_stream_success_accepts_signature_only_reasoning_exhaustion() {
let plan = test_gemini_chat_plan();
let report_context = json!({
"has_envelope": true,
"envelope_name": "antigravity:v1internal",
"provider_api_format": "gemini:generate_content",
});
let body = concat!(
"data: {\"response\":{\"responseId\":\"resp_signature_only_123\",\"modelVersion\":\"gemini-3.7-flash-tiered\",",
"\"candidates\":[{\"index\":0,\"content\":{\"role\":\"model\",\"parts\":[{\"text\":\"\",\"thoughtSignature\":\"opaque-thought-signature\"}]},\"finishReason\":\"MAX_TOKENS\"}],",
"\"usageMetadata\":{\"promptTokenCount\":22,\"thoughtsTokenCount\":29,\"totalTokenCount\":51}},",
"\"traceId\":\"trace-signature-only\"}\n\n",
);
let message = invalid_gemini_provider_stream_success_message(
&plan,
Some(&report_context),
StatusCode::OK.as_u16(),
None,
body.as_bytes(),
true,
);
assert!(message.is_none());
}
#[test]
fn invalid_gemini_provider_success_error_is_retryable_candidate_failure() {
let error = invalid_gemini_provider_success_execution_error(