Issue #188: [improvement] add latest gemini models to ModelProviderMapping
No open PR fixes this and merges clean
0 fix it but don't merge clean, 7 fix it partly. See the board below.
How it breaks
The path is the model's reasoning. Each box is a citation checked against the code.
What's wrong
The report's premise is outdated. `ModelProviderMapping` (MODEL_PROVIDER_MAPPING) no longer exists in prompt.py. It was deleted in the config-driven providers refactor, and prompt.py now only re-exports DEFAULT_MODEL and MODEL_PARAMETERS from config.py. Supported models are now an allowlist in providers.json.Show full explanation
config.provider_for() rejects any model name not listed under a provider's "models" with "Unknown model". providers.json lists only gemini-3.8-flash and the 2.0/2.5 models. It has no entries for Gemini 3.5 Flash, 3.5 Pro, 3.1 Flash Lite, or the "Pro Latest"/"Flash Latest" tags, so those names fail. The fix is to add those model IDs to providers.json, not to edit prompt.py. I did not check the exact model ID strings the Gemini API uses for the new models.How to reproduce
- Set GEMINI_API_KEY in .env.
- Set DEFAULT_MODEL to a missing model name, e.g. gemini-3.5-pro, gemini-3.5-flash, gemini-3.1-flash-lite, gemini-pro-latest or gemini-flash-latest (exact IDs unverified).
- Run the hiring agent, or call python -c "import config; config.provider_for('gemini-3.5-pro')".
- It raises ValueError: Unknown model 'gemini-3.5-pro'. Available models: ... (only the providers.json models).
- Confirm that grep -r ModelProviderMapping finds nothing in the code, and that prompt.py has no mapping.
Evidence
Each citation was checked against the code at e0ece80.
The Gemini model list in providers.json is the only place models are registered. It has no 3.5 Flash, 3.5 Pro, 3.1 Flash Lite, or Pro/Flash Latest entries.
This is the last entry in the Gemini list, so the new models are absent.
A model is only accepted if it appears in a provider's models list in providers.json.
Unlisted models raise ValueError, which is the failure the reporter sees.
prompt.py has no ModelProviderMapping any more. It only re-exports config values, so the report's claim about prompt.py is outdated.
Pull requests
Verdicts are judged from the diff, not run. Merge status is a real git check against e0ece80.
Adds only gemini-flash-lite-latest to providers.json (the load_dotenv change is unrelated), so none of the named missing models or the Pro/Flash Latest tags are added.
Adds gemini-flash-latest to providers.json, one of the named missing tags, but not Pro Latest, 3.5 or 3.1 models.
Adds gemini-3.5-flash to the providers.json allowlist, but not 3.5 Pro, 3.1 Flash Lite or the Pro/Flash Latest tags, so it covers only some of the missing names.
Adds gemini-flash-latest and gemini-pro-latest to providers.json, which covers the Latest tags, but 3.5 Flash, 3.5 Pro and 3.1 Flash Lite stay unlisted.
Adds only gemini-flash-latest to providers.json, one of the named missing tags and nothing else.
Adds gemini-3.5-flash and gemini-3.1-flash-lite to providers.json, two of the named missing models, but not 3.5 Pro or the Latest tags.
Adds gemini-3.5-flash, 3.1-flash-lite and a 3.1 Pro preview to providers.json, but not 3.5 Pro or the Latest tags.
5 PRs that don't fix itShow
Edits MODEL_PROVIDER_MAPPING in prompt.py, which no longer exists on main, and adds no entries to providers.json.
Moves settings into config.yaml and again edits the removed prompt.py mapping, and its config.py changes don't touch the providers.json allowlist or provider_for().
Adds a Groq provider and leaves the Gemini model list unchanged.
The Gemini change is a single gemini-3.6-flash entry, which isn't one of the named missing models, and the rest of the PR is a new security role.
Adds a Bedrock transport and provider entry and leaves the Gemini model list alone, so the missing Gemini names still raise Unknown model.
What this packet does not prove
- Citations are checked against the code. The explanation that links them, the order of the chain, and any claim about outside systems (APIs, libraries) are the model's reasoning and are not checked.
- PR verdicts are judged from the diff, not run. No PR was applied or tested.
- PRs were shortlisted because they change a cited line or mention the issue. A fix in another file, or a PR whose line numbers have drifted, is missed, so this is not proof that no other PR fixes it.