Skip to content

feat(#3996): reject incompatible image-output gateway requests - #4020

Draft
aheritier wants to merge 1 commit into
gemini-output-capabilityfrom
gemini-image-request-guard
Draft

feat(#3996): reject incompatible image-output gateway requests#4020
aheritier wants to merge 1 commit into
gemini-output-capabilityfrom
gemini-image-request-guard

Conversation

@aheritier

@aheritier aheritier commented Aug 22, 2026

Copy link
Copy Markdown
Collaborator

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 test

Request 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.

@aheritier aheritier added area/docs Documentation changes area/providers/gemini Google Gemini provider support area/runtime Runtime engine, agent loop execution, tool dispatch, loop detection area/tui For features/issues/fixes related to the TUI kind/feat PR adds a new feature (maps to feat:). Use on PRs only. labels Aug 22, 2026
@aheritier
aheritier force-pushed the gemini-image-request-guard branch 2 times, most recently from ee1c735 to 70bd556 Compare August 25, 2026 07:58
@aheritier
aheritier force-pushed the gemini-image-request-guard branch from 70bd556 to 65cfdea Compare August 25, 2026 20:24
Gemini image-output requests fail with opaque HTTP 400 responses when
they also carry custom tools, built-in tools, or structured output.
Resolve the model capability first, then reject those unsupported shapes
locally before network dispatch on the gateway, direct Gemini API, and
Vertex AI surfaces with a bounded error naming only fixed safe
categories.

Use the models.dev tool_call capability only to clarify custom-tool
failures: distinguish models without tool calls from tool-capable models
whose image-output request shape is incompatible, while missing
catalogue data keeps the conservative message. The rejection matrix
stays unchanged.

Keep ordinary text requests and compatible image-output requests
unchanged. Request-shape diagnostics report the resolved capability and
separately note whether configuration explicitly overrode catalogue
metadata. Tests cover the gate, no-dispatch behavior, safe errors, and
the runtime/TUI error seam.
@aheritier
aheritier force-pushed the gemini-image-request-guard branch from 65cfdea to 890abfa Compare August 26, 2026 11:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs Documentation changes area/providers/gemini Google Gemini provider support area/runtime Runtime engine, agent loop execution, tool dispatch, loop detection area/tui For features/issues/fixes related to the TUI kind/feat PR adds a new feature (maps to feat:). Use on PRs only.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant