feat([issue-3231]): pin agy imagegen to a cheap agent model and record the fixed image model - #3232
Merged
Conversation
…d the fixed image model An unpinned agy render resolved to the ANTIGRAVITY_CONFIGURED_DEFAULT sentinel, which resolveCliModel maps to no --model at all — so agy ran its own configured session default (potentially claude-opus-4-6-thinking) just to relay one generate_image call. Mirror the Codex precedent (CODEX_IMAGEGEN_DEFAULT_MODEL) with AGY_IMAGEGEN_DEFAULT_MODEL = gemini-3.5-flash-low as a code-level default; an explicit imageGen.agy.model still wins, as does a per-render cloudModel. The image model behind generate_image is fixed server-side at imagen-3.0-generate-002 and not selectable through any channel (no tool parameter, --model imagen-* errors, prompt directives are ignored — empirically probed; agy itself falsely claims two of those routes work). Record it in render sidecars as imageModel, name it read-only in Settings, and relabel the agent-model field so the two axes can't be conflated. Phase 1 of the render-defaults epic. Refs #3231
…enqueue contract at route level
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
Phase 1 of the render-defaults epic (Refs #3231): give Agy image renders the same cheap-tier default Codex renders already have, and stop the Settings UI from implying an image-model choice that doesn't exist.
AGY_IMAGEGEN_DEFAULT_MODEL = 'gemini-3.5-flash-low'(server/services/imageGen/modes.js, next to the Codex pins). An unpinned agy render previously resolved to theANTIGRAVITY_CONFIGURED_DEFAULTsentinel, whichresolveCliModelmaps to no--modelflag at all — so agy ran whatever session model its own config selected (potentiallyclaude-opus-4-6-thinking) just to relay onegenerate_imagetool call.CLOUD_PROVIDER_SPECS[AGY]now falls back to the concrete pin; an explicitimageGen.agy.modelin Settings still wins, as does a per-rendercloudModel. Code-level default (no migration), per the Codex precedent. Agy bakes effort into the model id (-low/-medium/-high), so no separate effort pin is needed.AGY_IMAGEGEN_IMAGE_MODEL = 'imagen-3.0-generate-002'— the image model behind agy'sgenerate_imagetool, fixed server-side by Antigravity. All three selection channels were empirically probed and closed (no tool parameter;--model imagen-*errors pre-generation; prompt directives are ignored — agy itself falsely claims two of those routes work, which is documented at the constant so it isn't re-litigated). Render sidecars now record it asimageModel, distinct from the agent model.Legacy queue rows carrying the old sentinel still display "configured default" in MediaJobsQueue — correct for historical jobs. The LLM-session sentinel path (
providerModels, TUI spawning) is untouched.Test plan
server: full suite green (23,460 passed). New/updated: resolver fallback = pin (cloudProviderConfig.test.js), sidecar recordsimageModel(agy.test.js), and a route-level test pinning that a fully-unpinned enqueue persistsparams.model === 'gemini-3.5-flash-low'into the queue job (routes/imageGen.test.js).client: full suite green (5,429 passed). New: ImageGenTab namesimagen-3.0-generate-002read-only and states it is not selectable.agy --model gemini-3.5-flash-lowcompletes agenerate_imagerender.Refs #3231