fix(translator): strip multipleOf from antigravity/gemini tool schemas - #6052
Merged
diegosouzapw merged 2 commits intoJul 3, 2026
Merged
Conversation
…s (port from 9router#2309)
`multipleOf` is not part of the Gemini/antigravity OpenAPI 3.0 schema subset, so
leaving it in function_declaration parameters triggered a hard upstream 400
("Unknown name multipleOf"). Add it to GEMINI_UNSUPPORTED_SCHEMA_KEYS so it is
stripped at every schema level; minimum/maximum stay (Gemini accepts them).
Reported-by: abil0321 (decolua/9router#2309)
Contributor
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
KooshaPari
added a commit
to KooshaPari/OmniRoute
that referenced
this pull request
Jul 3, 2026
…rip, parseAutoConfig leaf, cline envelope (#264) Bundles four upstream translator/SSE fixes into the fork: - fix(translator/kiro): wrap system-origin content in <system-reminder> tags before merging into the Kiro/CodeWhisperer user message, so the system prompt no longer leaks as raw user text (diegosouzapw#6053). - fix(translator/gemini): strip `multipleOf` from antigravity/gemini tool schemas at every level (top-level, nested, array items) — Gemini's OpenAPI 3.0 subset rejects it with a hard 400 (diegosouzapw#6052). - refactor(sse): extract the pure `parseAutoConfig` leaf from combo.ts into open-sse/services/combo/autoConfig.ts (diegosouzapw#6049). - fix(sse/cline): unwrap the Cline non-streaming response envelope so a content array of Anthropic-style text blocks is not misclassified as 502 empty_choices (diegosouzapw#6046). diegosouzapw#6002 (autoCombo fitness-source stabilize) is already on fork main via diegosouzapw#5890 — not re-applied here. Co-authored-by: VitzS7ven <209032696+VitzS7@users.noreply.github.com> Co-authored-by: Muhammad Salsabil <74514963+abil0321@users.noreply.github.com> Co-authored-by: Diego Rodrigues de Sa e Souza <diegosouza.pw@outlook.com>
…ssue-2309-gemini-multipleof
Merged
tkgo11
pushed a commit
to tkgo11/OmniRoute
that referenced
this pull request
Sep 23, 2026
…s (port from 9router#2309) (diegosouzapw#6052) `multipleOf` is not part of the Gemini/antigravity OpenAPI 3.0 schema subset, so leaving it in function_declaration parameters triggered a hard upstream 400 ("Unknown name multipleOf"). Add it to GEMINI_UNSUPPORTED_SCHEMA_KEYS so it is stripped at every schema level; minimum/maximum stay (Gemini accepts them). Reported-by: abil0321 (decolua/9router#2309)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
multipleOfnumeric constraint failed with a hard upstream400:Invalid JSON payload received. Unknown name "multipleOf" at 'request.tools[0].function_declarations[...]'.multipleOfis not part of the Gemini/antigravity OpenAPI 3.0 schema subset and was not inGEMINI_UNSUPPORTED_SCHEMA_KEYS, socleanJSONSchemaForAntigravityleft it in the payload.Root cause
GEMINI_UNSUPPORTED_SCHEMA_KEYS(inopen-sse/translator/helpers/geminiHelper.ts) lists the JSON-Schema keywords Gemini rejects, but omittedmultipleOf. Any tool that declared it on a numeric property survived schema cleaning and reached the upstream verbatim.Fix
Add
"multipleOf"to the set.removeUnsupportedKeywordsalready recurses into nested objects and arrayitems, so it is now stripped at every level.minimum/maximumare accepted by Gemini and remain untouched.Attribution
Thanks to @abil0321 for the original report.
Test plan
tests/unit/gemini-multipleof-2309.test.ts(fails before fix, passes after)npm run typecheck:core