Repository navigation
Add support for latest AI models (Claude 4.6, GPT-5.3, Gemini 3.1, Qwen3.5) - #747
Conversation
Add gpt-5.3-chat-latest (released March 3, 2026) to the OpenAI direct provider and OpenRouter paid provider, with vision capability entries. https://claude.ai/code/session_013JAWABx5QQCSth4ApeU6dH
Add gemini-3.1-flash-lite-preview (released Mar 3, 2026) with 1M context window to Google direct and OpenRouter providers, with vision capability. https://claude.ai/code/session_013JAWABx5QQCSth4ApeU6dH
…iders Add gemini-3.1-pro-preview-customtools (released Feb 25, 2026) with 1M context window to Google direct and OpenRouter providers, with vision. https://claude.ai/code/session_013JAWABx5QQCSth4ApeU6dH
Add openai/gpt-5.3-codex (released Feb 24, 2026, 400K context) to the OpenRouter paid provider with vision capability entry. https://claude.ai/code/session_013JAWABx5QQCSth4ApeU6dH
Add gemini-3.1-pro-preview (released Feb 19, 2026) with 1M context window to Google direct and OpenRouter providers, with vision capability. https://claude.ai/code/session_013JAWABx5QQCSth4ApeU6dH
Add claude-sonnet-4-6-20260217 (released Feb 17, 2026) with 1M context to Anthropic direct and OpenRouter providers, with vision capability. https://claude.ai/code/session_013JAWABx5QQCSth4ApeU6dH
Add four Qwen3.5 native vision-language models (released Feb 25, 2026): - qwen3.5-flash (1M context) - qwen3.5-122b-a10b (262K context) - qwen3.5-35b-a3b (262K context) - qwen3.5-27b (262K context) All are vision-capable models with hybrid linear attention + MoE architecture. https://claude.ai/code/session_013JAWABx5QQCSth4ApeU6dH
Add two more Qwen3.5 native vision-language models (released Feb 16, 2026): - qwen3.5-397b-a17b (262K context, flagship model) - qwen3.5-plus-2026-02-15 (1M context) https://claude.ai/code/session_013JAWABx5QQCSth4ApeU6dH
Add qwen/qwen3-max-thinking (released Feb 9, 2026, 262K context), the flagship reasoning model in the Qwen3 series. https://claude.ai/code/session_013JAWABx5QQCSth4ApeU6dH
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughAdded many new model entries (GPT‑5.4/5.3, Claude Sonnet 4.6, Gemini 3.1 variants, Qwen3.5 family, Mercury 2) across AI provider registries and extended the vision-capable models registry; also adjusted IntegrationAuditLogPage stats/export logic and its test. Changes
Sequence Diagram(s)(omitted) Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bd6c37d717
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // Qwen3.5 Vision-Language Models | ||
| 'qwen/qwen3.5-397b-a17b': true, | ||
| 'qwen/qwen3.5-plus-2026-02-15': true, | ||
| 'qwen/qwen3.5-flash': true, | ||
| 'qwen/qwen3.5-122b-a10b': true, |
There was a problem hiding this comment.
Add qwen3-max-thinking to vision model map
This Qwen vision-model block omits qwen/qwen3-max-thinking, even though that model was newly added in ai-providers-config.ts alongside the other Qwen3.5 entries; because hasVisionCapability() does not have a Qwen heuristic fallback, this ID will be treated as non-vision at runtime and image input/features will be disabled for users selecting it.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in 54ac5f9 — added qwen3-max-thinking to the vision model registry. With the prefix-stripping refactor, both qwen/qwen3-max-thinking and bare qwen3-max-thinking are now resolved correctly.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@apps/web/src/lib/ai/core/vision-models.ts`:
- Around line 99-106: VISION_CAPABLE_MODELS is missing the
'qwen/qwen3-max-thinking' entry, causing hasVisionCapability fallback to
mis-classify that model as non-vision-capable; add 'qwen/qwen3-max-thinking':
true to the VISION_CAPABLE_MODELS map/constant (the same structure that contains
other qwen/* entries) so the model is recognized by hasVisionCapability and
image requests are not blocked.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 85457d9e-cb61-44e8-9ece-d67f66b3f343
📒 Files selected for processing (2)
apps/web/src/lib/ai/core/ai-providers-config.tsapps/web/src/lib/ai/core/vision-models.ts
- GPT-5.4: OpenAI's latest frontier model, 1M+ context, vision support - GPT-5.4 Pro: Enhanced reasoning variant for complex tasks, vision support - Mercury 2: Inception's reasoning diffusion LLM, 128K context, >1000 tok/s All released March 4-5, 2026. https://claude.ai/code/session_013JAWABx5QQCSth4ApeU6dH
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
apps/web/src/lib/ai/core/ai-providers-config.ts (1)
63-76:⚠️ Potential issue | 🟠 MajorThese new third-party models still bypass the current subscription gate.
The provided
apps/web/src/app/api/ai/chat/route.tssnippet shows chat requests only consultingrequiresProSubscription(...), and the accompanying context says that helper returnsfalsefor non-PageSpace providers. Adding more Claude/GPT/Gemini/Qwen/Mercury entries here therefore expands the set of premium models users can hit without any entitlement check.Also applies to: 113-119, 133-135, 152-152, 216-218, 239-240, 288-288
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@apps/web/src/lib/ai/core/ai-providers-config.ts` around lines 63 - 76, Third-party model entries added to ai-providers-config.ts are currently bypassing the subscription gate because requiresProSubscription(...) (used in apps/web/src/app/api/ai/chat/route.ts) returns false for non-PageSpace providers; fix by either adding an explicit premium flag to the provider configuration in ai-providers-config.ts (e.g., requiresPro: true for entries like 'anthropic/claude-sonnet-4.6', 'openai/gpt-5.4', etc.) and updating the chat route to consult that flag, or modify the requiresProSubscription function to treat non-PageSpace namespaces (anthropic/, openai/, gemini/, qwen/, mercury/, etc.) as requiring pro access; update the chat route to call the new logic (requiresProSubscription) so these new keys are correctly gated.
♻️ Duplicate comments (1)
apps/web/src/lib/ai/core/vision-models.ts (1)
105-111:⚠️ Potential issue | 🟠 MajorAdd
qwen/qwen3-max-thinkingto the vision allowlist.
apps/web/src/lib/ai/core/ai-providers-config.tsnow exposesqwen/qwen3-max-thinkingat Line 119, buthasVisionCapability()has no Qwen fallback. Without a static entry here, that model resolves tofalseand image requests get blocked.Suggested fix
'qwen/qwen3.5-flash': true, 'qwen/qwen3.5-122b-a10b': true, 'qwen/qwen3.5-35b-a3b': true, 'qwen/qwen3.5-27b': true, + 'qwen/qwen3-max-thinking': true,🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@apps/web/src/lib/ai/core/vision-models.ts` around lines 105 - 111, The vision allowlist in apps/web/src/lib/ai/core/vision-models.ts is missing the Qwen fallback entry so hasVisionCapability() will treat qwen/qwen3-max-thinking as unsupported; add the key 'qwen/qwen3-max-thinking': true to the exported allowlist object (alongside other 'qwen/...' entries such as 'qwen/qwen3.5-397b-a17b') so that the model exposed in ai-providers-config.ts is recognized and image requests are allowed.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@apps/web/src/lib/ai/core/ai-providers-config.ts`:
- Around line 239-240: The AI_PROVIDERS.openai.models registry is missing
GPT-5.4 entries so isValidModel('openai', ...) and the UI selector reject
gpt-5.4 identifiers; update the AI_PROVIDERS.openai.models object to include
mappings for 'gpt-5.4' (friendly name e.g., 'GPT-5.4') and 'gpt-5.4-pro' (e.g.,
'GPT-5.4 Pro') matching the keys used in vision-models.ts so the direct OpenAI
provider recognizes these models.
---
Outside diff comments:
In `@apps/web/src/lib/ai/core/ai-providers-config.ts`:
- Around line 63-76: Third-party model entries added to ai-providers-config.ts
are currently bypassing the subscription gate because
requiresProSubscription(...) (used in apps/web/src/app/api/ai/chat/route.ts)
returns false for non-PageSpace providers; fix by either adding an explicit
premium flag to the provider configuration in ai-providers-config.ts (e.g.,
requiresPro: true for entries like 'anthropic/claude-sonnet-4.6',
'openai/gpt-5.4', etc.) and updating the chat route to consult that flag, or
modify the requiresProSubscription function to treat non-PageSpace namespaces
(anthropic/, openai/, gemini/, qwen/, mercury/, etc.) as requiring pro access;
update the chat route to call the new logic (requiresProSubscription) so these
new keys are correctly gated.
---
Duplicate comments:
In `@apps/web/src/lib/ai/core/vision-models.ts`:
- Around line 105-111: The vision allowlist in
apps/web/src/lib/ai/core/vision-models.ts is missing the Qwen fallback entry so
hasVisionCapability() will treat qwen/qwen3-max-thinking as unsupported; add the
key 'qwen/qwen3-max-thinking': true to the exported allowlist object (alongside
other 'qwen/...' entries such as 'qwen/qwen3.5-397b-a17b') so that the model
exposed in ai-providers-config.ts is recognized and image requests are allowed.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 183d6092-16d9-4835-b65a-7766db9d995f
📒 Files selected for processing (2)
apps/web/src/lib/ai/core/ai-providers-config.tsapps/web/src/lib/ai/core/vision-models.ts
- Fix misleading stats labels: clarify success rate and avg duration are computed from the current page only, not the full dataset - Remove duplicate filter-to-params logic in handleExport by reusing hookParams - Compute stats in a single pass with useMemo instead of separate filter+reduce calls - Remove unnecessary DOM append/remove for CSV download element - Tighten FiltersState.success type from string to union literal - Deduplicate vision-models.ts: replace ~30 provider-prefixed entries with a stripPrefix helper in hasVisionCapability lookup
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
apps/web/src/components/integrations/IntegrationAuditLogPage.tsx (1)
282-287:⚠️ Potential issue | 🟡 MinorType mismatch in Select onValueChange handler.
The
onValueChangecallback receivesvalue: stringfrom the Select component, butfilters.successis typed as'all' | 'true' | 'false'. The assignmentsuccess: valueshould use a type assertion to maintain type safety.Proposed fix
<Select value={filters.success} onValueChange={(value) => { - setFilters((prev) => ({ ...prev, success: value })); + setFilters((prev) => ({ ...prev, success: value as 'all' | 'true' | 'false' })); setCurrentPage(1); }} >🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@apps/web/src/components/integrations/IntegrationAuditLogPage.tsx` around lines 282 - 287, In IntegrationAuditLogPage, the Select onValueChange handler assigns a string to filters.success which is typed as the union 'all' | 'true' | 'false'; fix this by using a TypeScript type assertion when updating filters (cast the incoming value to the 'all' | 'true' | 'false' union) so the setFilters call remains type-safe, and keep the setCurrentPage(1) call as-is.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@apps/web/src/lib/ai/core/vision-models.ts`:
- Around line 74-79: The vision-capable registry is missing the 'grok-4-fast'
entry causing hasVisionCapability to return false for that model; update the
registry object in apps/web/src/lib/ai/core/vision-models.ts (the map that
currently includes 'grok-4', 'grok-2-vision', etc.) to include 'grok-4-fast':
true so hasVisionCapability (the function that checks for both "grok" and
"vision" substrings) will correctly recognize it as vision-capable.
---
Outside diff comments:
In `@apps/web/src/components/integrations/IntegrationAuditLogPage.tsx`:
- Around line 282-287: In IntegrationAuditLogPage, the Select onValueChange
handler assigns a string to filters.success which is typed as the union 'all' |
'true' | 'false'; fix this by using a TypeScript type assertion when updating
filters (cast the incoming value to the 'all' | 'true' | 'false' union) so the
setFilters call remains type-safe, and keep the setCurrentPage(1) call as-is.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 20fa6543-04da-420b-bb69-d27dce83bc77
📒 Files selected for processing (3)
apps/web/src/components/integrations/IntegrationAuditLogPage.tsxapps/web/src/components/integrations/__tests__/IntegrationAuditLogPage.test.tsxapps/web/src/lib/ai/core/vision-models.ts
- Add qwen3-max-thinking to vision model registry (Codex + CodeRabbit) - Add grok-4-fast to vision model registry (CodeRabbit) - Add GPT-5.4/5.4 Pro to direct OpenAI provider (CodeRabbit) - Fix TypeScript error: cast Select onValueChange to FiltersState union
The tasks route now imports checkMCPPageScope from @/lib/auth, so the existing mock needs to include it to avoid vitest errors.
Summary
Add new model support across Anthropic, Google, OpenAI, and OpenRouter providers, plus integration system enhancements.
AI Models
Integrations
Infrastructure
How to Validate