feat: support for gpt-5.4 family and gemini-3.1#5
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the codebase to use the renamed Google Vertex AI model identifier gemini-3.1-pro-preview in place of gemini-3-pro-preview, and adds a DB migration to rename existing rate-card entries accordingly.
Changes:
- Replace
gemini-3-pro-previewreferences withgemini-3.1-pro-previewacross backend, frontend, and tests. - Update orchestrator graph/model wiring to treat Gemini 3.1 Pro like the prior Gemini Pro variant.
- Add a SQL migration to rename the stored rate card model name/pattern for Gemini Pro.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/orchestrator-agent/tests/test_thinking_level.py | Updates Gemini model name used in thinking-level unit tests. |
| packages/orchestrator-agent/tests/integration/conftest.py | Updates integration-test model lists/mappings for Vertex AI Gemini Pro. |
| packages/orchestrator-agent/app/core/graph_factory.py | Updates Gemini model-type checks used for response formatting and built-in tool wiring. |
| packages/orchestrator-agent/.env.template | Updates documented alternative model name for file analysis. |
| packages/console-frontend/src/config/models.ts | Updates fallback model option value/label and thinking-level fallback condition. |
| packages/console-backend/tests/test_sub_agent_thinking_normalization.py | Updates Gemini model names in thinking-normalization tests. |
| packages/console-backend/sqlmigrations/ddl/039_rename_gemini_pro_model.sql | Adds migration to rename stored Gemini Pro rate-card model name and regex pattern. |
| packages/console-backend/playground_backend/services/sub_agent_service.py | Updates the set of models considered to support “thinking”. |
| packages/console-backend/playground_backend/models/sub_agent.py | Updates the allowed model-name literal list to include Gemini 3.1 Pro. |
| packages/agent-common/agent_common/models/base.py | Updates shared ModelType literal list to include Gemini 3.1 Pro. |
| packages/agent-common/agent_common/core/model_factory.py | Updates model metadata and Gemini provider config keys to Gemini 3.1 Pro. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "label": "Gemini 3.1 Pro Preview", | ||
| "provider": "Google Vertex AI", | ||
| "supports_thinking": True, | ||
| "thinking_levels": ["low", "high"], |
There was a problem hiding this comment.
get_available_models_metadata() will advertise Gemini 3.1 Pro as only supporting thinking levels [low, high], but elsewhere (e.g., orchestrator unit tests) Gemini is exercised with ThinkingLevel.medium. Please align the advertised thinking_levels with actual supported/desired levels (either expand this list or adjust callers/tests/UI expectations) so API consumers don’t get inconsistent capability info.
| "thinking_levels": ["low", "high"], | |
| "thinking_levels": ["low", "medium", "high"], |
| UPDATE rate_cards | ||
| SET model_name = 'gemini-3.1-pro-preview', | ||
| model_name_pattern = '^gemini-3\.1-pro-preview.*$' | ||
| WHERE provider = 'google_genai' | ||
| AND model_name = 'gemini-3-pro-preview'; |
There was a problem hiding this comment.
This migration can fail due to the (provider, model_name) unique constraint if a google_genai/gemini-3.1-pro-preview rate card already exists (e.g., manually seeded in an environment). Consider making it idempotent/safe by handling the conflict explicitly (e.g., updating only when the target name doesn’t exist, or merging/deleting the target row before the rename).
There was a problem hiding this comment.
Valid point in general, but no non-dev is using this yet. "We ain't gonna need it".
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "claude-sonnet-4.5": [ThinkingLevel.minimal, ThinkingLevel.low, ThinkingLevel.medium], | ||
| "claude-sonnet-4.6": [ThinkingLevel.minimal, ThinkingLevel.low, ThinkingLevel.medium], | ||
| "gemini-3-pro-preview": [ThinkingLevel.low], | ||
| "gemini-3.1-pro-preview": [ThinkingLevel.low], |
There was a problem hiding this comment.
THINKING_MODELS is used to parametrize integration streaming tests, but Gemini 3.1 Pro is currently restricted to [ThinkingLevel.low] here while the shared model metadata/test suite elsewhere indicates Gemini 3.1 Pro supports additional thinking levels (e.g., medium/high). Please align this list with the actual supported Gemini thinking levels so the integration matrix (and expectations) stays consistent.
| "gemini-3.1-pro-preview": [ThinkingLevel.low], | |
| "gemini-3.1-pro-preview": [ThinkingLevel.low, ThinkingLevel.medium, ThinkingLevel.high], |
There was a problem hiding this comment.
I'd keep the cheapest for the tests.
9fedff5 to
d85d335
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
closing in favour of #22, as this branch has become quite stale |
No description provided.