feat(#3996): reject incompatible image-output gateway requests - #4020
Draft
aheritier wants to merge 1 commit into
Draft
feat(#3996): reject incompatible image-output gateway requests#4020aheritier wants to merge 1 commit into
aheritier wants to merge 1 commit into
Conversation
aheritier
force-pushed
the
gemini-image-request-guard
branch
2 times, most recently
from
August 25, 2026 07:58
ee1c735 to
70bd556
Compare
aheritier
force-pushed
the
gemini-image-request-guard
branch
2 times, most recently
from
August 26, 2026 11:07
65cfdea to
890abfa
Compare
aheritier
force-pushed
the
gemini-image-request-guard
branch
2 times, most recently
from
September 1, 2026 16:18
48f364f to
890abfa
Compare
aheritier
force-pushed
the
gemini-image-request-guard
branch
from
September 1, 2026 16:29
890abfa to
d1eeba5
Compare
aheritier
force-pushed
the
gemini-image-request-guard
branch
from
September 6, 2026 16:14
d1eeba5 to
3e02989
Compare
aheritier
force-pushed
the
gemini-image-request-guard
branch
from
September 7, 2026 11:19
3e02989 to
f1e4e19
Compare
Reject tools, built-in tools, and structured output before dispatch whenever image output resolves enabled on Google gateway, direct Gemini API, or Vertex AI. The guard uses the same binding capability policy as request construction: explicit false, then explicit true, then exact models.dev Modalities.Output=image for an omitted image flag; unknown or unavailable metadata stays off. It never guesses from model names. Return fixed safe incompatibility classes, enrich custom-tool errors from models.dev tool_call metadata when available, and keep provider text, prompts, names, and schemas out of user-visible guard errors.
aheritier
force-pushed
the
gemini-image-request-guard
branch
from
September 7, 2026 11:34
f1e4e19 to
8ba3b99
Compare
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.
What
Rejects incompatible Gemini image-output gateway requests before dispatch, with shared diagnostics and integration coverage across runtime and TUI paths.
Why
Provides a deterministic, actionable failure instead of sending unsupported response modalities to a gateway.
Validation
task test; Gemini guard and runtime/TUI integration tests.Test instructions
Run:
task testRequest image output through a Gemini gateway using an incompatible model, then using a compatible model. Expected: the incompatible request is rejected before dispatch with the categorized diagnostic, while the compatible request proceeds normally.