-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Description
Please explain the motivation behind the feature request.
When opening the "Switch Model" modal in the Goose Desktop app, users have to re-select their provider even if they only want to change the model for their current provider. This creates a small amount of unnecessary friction in a common workflow. And even if they wanted to switch the provider, there's no additional friction to do that with this change.
Use case: A user is currently using Claude Sonnet 4.5 and wants to quickly switch to Claude Opus 4.5. Currently, they must:
- Open the modal (starts empty)
- Select "Anthropic" provider again
- Select "Claude Opus 4" model
This feature request solves the problem by pre-populating the modal with the current provider and model, allowing users to only change what they need. This small change aloows for quicker model switching workflows, especially when experimenting with different models from the same provider.
Describe the solution you'd like
Pre-populate the SwitchModelModal with the current model and provider when it opens. This can be achieved by:
- Using the existing
useModelAndProviderhook to getcurrentModelandcurrentProvider - Initializing the modal's state with these values as defaults
- Maintaining a consistent modal height to prevent layout shift when the model dropdown appears
The modal should still respect any initialProvider prop that's explicitly passed, falling back to the current values only when no initial value is provided.
Describe alternatives you've considered
- Status quo - Keep the modal empty, requiring full re-selection each time (more clicks, slower workflow)
Additional context
Implementation details:
- The
ModelAndProviderContextalready trackscurrentModelandcurrentProviderin state - The modal component is at:
ui/desktop/src/components/settings/models/subcomponents/SwitchModelModal.tsx - A minimum height should be set on the modal content to prevent content layout shift (CLS) when the model dropdown appears
Here I am picking openrouter to pick a different openrouter model:
- I have verified this does not duplicate an existing feature request
