feat: fold legacy models into separate menus - #5190
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a512274. Configure here.
ApprovabilityVerdict: Needs human review This PR introduces a new feature that changes how models are presented to users across web and mobile platforms, adding collapsible legacy model sections with new state management. New user-facing features warrant human review even when well-tested. You can customize Macroscope's approvability policy. Learn more. |
## What's Changed * feat: fold legacy models into separate menus by @t3dotgg in pingdotgg/t3code#5190 **Full Changelog**: pingdotgg/t3code@v0.0.32-nightly.20260802.979...v0.0.32-nightly.20260802.980 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.32-nightly.20260802.980

Older provider models crowd the model picker and make the current families harder to scan.
This marks legacy models in provider snapshots so every client receives the same classification. Web and desktop now place them in an inline collapsed section, while mobile places a provider-scoped legacy submenu immediately after each provider. Search, favorites, existing selections, and custom models remain directly usable.
Screenshots
Before
After, collapsed
After, expanded
Verification
vp test run packages/contracts/src/server.test.ts apps/server/src/provider/Layers/CodexProvider.test.ts apps/server/src/provider/Layers/ClaudeCapabilitiesProbe.test.ts apps/web/src/modelSelection.test.ts apps/mobile/src/lib/modelOptions.test.tsCreated by
gpt-5.6-solusing the Codex harness in T3 Code.Note
Medium Risk
Touches shared contracts and model-picker combobox key format; behavior is user-visible across web and mobile but scoped to picker UX with tests for classification and key round-trips.
Overview
Adds an optional
isLegacyflag on provider model snapshots (contracts schema, Claude/Codex classification) so clients can tuck older models out of the main list while keeping search, favorites, and existing selections working.Mobile centralizes model menu building in
buildModelMenuActions, splitting current vs legacy models into per-provider submenus (including a dedicated “legacy models” group when only legacy models exist).Web adds a collapsible Legacy models row per provider instance in
ModelPickerContent, auto-expands when the active model is legacy, and switches combobox keys tomodelPickerKeysso model rows and legacy section toggles cannot collide (replacing naiveinstanceId:slugparsing).Reviewed by Cursor Bugbot for commit a6ccc74. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Fold legacy models into collapsible sections in the model picker UI
isLegacyflag toServerProviderModelin server.ts, propagated from Claude and Codex providers through toAppModelOptionandModelOptionon web and mobile.buildModelMenuActionsutility in modelOptions.ts separates legacy models into a provider-scoped submenu; providers whose only models are legacy may be omitted.onValueChangehandlers now parse the new prefixed key format; existing stored keys would not match the new scheme.Macroscope summarized a6ccc74.