fix #84745: scope Google preview model normalization to Google providers only#84762
Conversation
|
Codex review: passed. Workflow note: Future ClawSweeper reviews update this same comment in place. How this review workflow works
Summary Reproducibility: yes. by source inspection. Current main sends every provider suffix through the Google preview normalizer, so PR rating Rank-up moves:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. Real behavior proof Risk before merge
Maintainer options:
Next step before merge Security Review detailsBest possible solution: Land the scoped normalization with the regression test while keeping nested Google proxy normalization intact. Do we have a high-confidence way to reproduce the issue? Yes by source inspection. Current main sends every provider suffix through the Google preview normalizer, so Is this the best way to solve the issue? Yes. The patch is the narrow maintainable fix because it follows the existing provider-scoped normalization rule and preserves the established nested Label justifications:
What I checked:
Likely related people:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 46c88640482a. |
f4b4122 to
5a8a95d
Compare
|
ClawSweeper PR egg ✨ Hatched: 🌱 uncommon Mossy Review Wisp Hatch commandComment Hatchability rules:
Rarity: 🌱 uncommon. What is this egg doing here?
|
|
@clawsweeper automerge |
|
ClawSweeper 🐠 automerge status This repair pass finished without changing the PR. ClawSweeper checked the branch and found no safe patch to push this time. Executor outcome: Codex /review timed out after 198965ms. Worker actions:
No push, rebase, replacement PR, merge, or ClawSweeper re-review happened on this pass. fish notes: model gpt-5.5, reasoning high. Automerge progress:
|
|
🦞✅ Source: Why human review is needed: Recommended next action: I added |
|
@Takhoffman Thanks for the automerge attempt. It looks blocked only by |
19eced0 to
cb51229
Compare
…ders only normalizeAgentModelRefForConfig was calling normalizeGooglePreviewModelId on the model suffix regardless of provider, causing non-Google providers (e.g. litellm/gemini-3-flash) to be incorrectly rewritten to preview IDs (litellm/gemini-3-flash-preview). This broke cron preflight allowlist validation for custom LiteLLM-backed providers.
…ders only normalizeAgentModelRefForConfig was calling normalizeGooglePreviewModelId on the model suffix regardless of provider, causing non-Google providers (e.g. litellm/gemini-3-flash) to be incorrectly rewritten to preview IDs (litellm/gemini-3-flash-preview). This broke cron preflight allowlist validation for custom LiteLLM-backed providers. Now only applies normalization when the provider is a Google provider (google, google-gemini-cli, google-vertex) or the model suffix starts with google/ (proxy providers like openrouter that route through Google's model namespace).
…e providers only
…e providers only
0cf16e7 to
efffcd1
Compare
Restore nested google/ suffix normalization for proxy providers while keeping bare non-Google Gemini-looking refs unchanged, with regression coverage for LiteLLM allowlist entries. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…e providers only (openclaw#84762) Summary: - The branch scopes config-time Google Gemini preview model normalization to Google providers or nested `google/` proxy suffixes, adds model-picker regression coverage, and adds a changelog entry. - Reproducibility: yes. by source inspection. Current main sends every provider suffix through the Google prev ... i-3-flash` deterministically becomes `litellm/gemini-3-flash-preview`; I did not run a live cron preflight. Automerge notes: - PR branch already contained follow-up commit before automerge: fix(config): scope Google preview model normalization to Google provi… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: scope Google preview model normalization to Google provid… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: preserve proxy Google model normalization Validation: - ClawSweeper review passed for head c59163c. - Required merge gates passed before the squash merge. Prepared head SHA: c59163c Review: openclaw#84762 (comment) Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com> Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com> Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
…e providers only (openclaw#84762) Summary: - The branch scopes config-time Google Gemini preview model normalization to Google providers or nested `google/` proxy suffixes, adds model-picker regression coverage, and adds a changelog entry. - Reproducibility: yes. by source inspection. Current main sends every provider suffix through the Google prev ... i-3-flash` deterministically becomes `litellm/gemini-3-flash-preview`; I did not run a live cron preflight. Automerge notes: - PR branch already contained follow-up commit before automerge: fix(config): scope Google preview model normalization to Google provi… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: scope Google preview model normalization to Google provid… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: preserve proxy Google model normalization Validation: - ClawSweeper review passed for head c59163c. - Required merge gates passed before the squash merge. Prepared head SHA: c59163c Review: openclaw#84762 (comment) Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com> Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com> Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
…e providers only (openclaw#84762) Summary: - The branch scopes config-time Google Gemini preview model normalization to Google providers or nested `google/` proxy suffixes, adds model-picker regression coverage, and adds a changelog entry. - Reproducibility: yes. by source inspection. Current main sends every provider suffix through the Google prev ... i-3-flash` deterministically becomes `litellm/gemini-3-flash-preview`; I did not run a live cron preflight. Automerge notes: - PR branch already contained follow-up commit before automerge: fix(config): scope Google preview model normalization to Google provi… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: scope Google preview model normalization to Google provid… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: preserve proxy Google model normalization Validation: - ClawSweeper review passed for head c59163c. - Required merge gates passed before the squash merge. Prepared head SHA: c59163c Review: openclaw#84762 (comment) Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com> Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com> Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
…e providers only (openclaw#84762) Summary: - The branch scopes config-time Google Gemini preview model normalization to Google providers or nested `google/` proxy suffixes, adds model-picker regression coverage, and adds a changelog entry. - Reproducibility: yes. by source inspection. Current main sends every provider suffix through the Google prev ... i-3-flash` deterministically becomes `litellm/gemini-3-flash-preview`; I did not run a live cron preflight. Automerge notes: - PR branch already contained follow-up commit before automerge: fix(config): scope Google preview model normalization to Google provi… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: scope Google preview model normalization to Google provid… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: preserve proxy Google model normalization Validation: - ClawSweeper review passed for head c59163c. - Required merge gates passed before the squash merge. Prepared head SHA: c59163c Review: openclaw#84762 (comment) Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com> Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com> Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
…e providers only (openclaw#84762) Summary: - The branch scopes config-time Google Gemini preview model normalization to Google providers or nested `google/` proxy suffixes, adds model-picker regression coverage, and adds a changelog entry. - Reproducibility: yes. by source inspection. Current main sends every provider suffix through the Google prev ... i-3-flash` deterministically becomes `litellm/gemini-3-flash-preview`; I did not run a live cron preflight. Automerge notes: - PR branch already contained follow-up commit before automerge: fix(config): scope Google preview model normalization to Google provi… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: scope Google preview model normalization to Google provid… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: preserve proxy Google model normalization Validation: - ClawSweeper review passed for head c59163c. - Required merge gates passed before the squash merge. Prepared head SHA: c59163c Review: openclaw#84762 (comment) Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com> Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com> Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
…e providers only (openclaw#84762) Summary: - The branch scopes config-time Google Gemini preview model normalization to Google providers or nested `google/` proxy suffixes, adds model-picker regression coverage, and adds a changelog entry. - Reproducibility: yes. by source inspection. Current main sends every provider suffix through the Google prev ... i-3-flash` deterministically becomes `litellm/gemini-3-flash-preview`; I did not run a live cron preflight. Automerge notes: - PR branch already contained follow-up commit before automerge: fix(config): scope Google preview model normalization to Google provi… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: scope Google preview model normalization to Google provid… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: preserve proxy Google model normalization Validation: - ClawSweeper review passed for head c59163c. - Required merge gates passed before the squash merge. Prepared head SHA: c59163c Review: openclaw#84762 (comment) Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com> Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com> Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
…e providers only (openclaw#84762) Summary: - The branch scopes config-time Google Gemini preview model normalization to Google providers or nested `google/` proxy suffixes, adds model-picker regression coverage, and adds a changelog entry. - Reproducibility: yes. by source inspection. Current main sends every provider suffix through the Google prev ... i-3-flash` deterministically becomes `litellm/gemini-3-flash-preview`; I did not run a live cron preflight. Automerge notes: - PR branch already contained follow-up commit before automerge: fix(config): scope Google preview model normalization to Google provi… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: scope Google preview model normalization to Google provid… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: preserve proxy Google model normalization Validation: - ClawSweeper review passed for head c59163c. - Required merge gates passed before the squash merge. Prepared head SHA: c59163c Review: openclaw#84762 (comment) Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com> Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com> Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
…e providers only (openclaw#84762) Summary: - The branch scopes config-time Google Gemini preview model normalization to Google providers or nested `google/` proxy suffixes, adds model-picker regression coverage, and adds a changelog entry. - Reproducibility: yes. by source inspection. Current main sends every provider suffix through the Google prev ... i-3-flash` deterministically becomes `litellm/gemini-3-flash-preview`; I did not run a live cron preflight. Automerge notes: - PR branch already contained follow-up commit before automerge: fix(config): scope Google preview model normalization to Google provi… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: scope Google preview model normalization to Google provid… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: preserve proxy Google model normalization Validation: - ClawSweeper review passed for head c59163c. - Required merge gates passed before the squash merge. Prepared head SHA: c59163c Review: openclaw#84762 (comment) Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com> Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com> Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
…e providers only (openclaw#84762) Summary: - The branch scopes config-time Google Gemini preview model normalization to Google providers or nested `google/` proxy suffixes, adds model-picker regression coverage, and adds a changelog entry. - Reproducibility: yes. by source inspection. Current main sends every provider suffix through the Google prev ... i-3-flash` deterministically becomes `litellm/gemini-3-flash-preview`; I did not run a live cron preflight. Automerge notes: - PR branch already contained follow-up commit before automerge: fix(config): scope Google preview model normalization to Google provi… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: scope Google preview model normalization to Google provid… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: preserve proxy Google model normalization Validation: - ClawSweeper review passed for head c59163c. - Required merge gates passed before the squash merge. Prepared head SHA: c59163c Review: openclaw#84762 (comment) Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com> Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com> Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
…e providers only (openclaw#84762) Summary: - The branch scopes config-time Google Gemini preview model normalization to Google providers or nested `google/` proxy suffixes, adds model-picker regression coverage, and adds a changelog entry. - Reproducibility: yes. by source inspection. Current main sends every provider suffix through the Google prev ... i-3-flash` deterministically becomes `litellm/gemini-3-flash-preview`; I did not run a live cron preflight. Automerge notes: - PR branch already contained follow-up commit before automerge: fix(config): scope Google preview model normalization to Google provi… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: scope Google preview model normalization to Google provid… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: preserve proxy Google model normalization Validation: - ClawSweeper review passed for head c59163c. - Required merge gates passed before the squash merge. Prepared head SHA: c59163c Review: openclaw#84762 (comment) Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com> Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com> Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
…e providers only (openclaw#84762) Summary: - The branch scopes config-time Google Gemini preview model normalization to Google providers or nested `google/` proxy suffixes, adds model-picker regression coverage, and adds a changelog entry. - Reproducibility: yes. by source inspection. Current main sends every provider suffix through the Google prev ... i-3-flash` deterministically becomes `litellm/gemini-3-flash-preview`; I did not run a live cron preflight. Automerge notes: - PR branch already contained follow-up commit before automerge: fix(config): scope Google preview model normalization to Google provi… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: scope Google preview model normalization to Google provid… - PR branch already contained follow-up commit before automerge: fix openclaw#84745: preserve proxy Google model normalization Validation: - ClawSweeper review passed for head c59163c. - Required merge gates passed before the squash merge. Prepared head SHA: c59163c Review: openclaw#84762 (comment) Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com> Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com> Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Summary
normalizeAgentModelRefForConfiginsrc/config/model-input.tswas callingnormalizeGooglePreviewModelIdon the model suffix regardless of provider, causing non-Google providers (e.g.litellm/gemini-3-flash) to be incorrectly rewritten to preview IDs (litellm/gemini-3-flash-preview). This broke cron preflight allowlist validation for custom LiteLLM-backed providers.Changes
normalizeAgentModelRefForConfig(): Google preview model normalization is now only applied when the provider isgoogle,google-gemini-cli, orgoogle-vertexnormalizeBuiltInProviderModelId()insrc/agents/model-ref-shared.tsReal behavior proof
node proof_repro_84745.mjsTest plan
google/gemini-3-flashstill normalizes togoogle/gemini-3-flash-previewlitellm/gemini-3-flashstays aslitellm/gemini-3-flash