Skip to content

UX: When changing provider/model, load existing provider/model #6316

@nickytonline

Description

@nickytonline

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:

  1. Open the modal (starts empty)
  2. Select "Anthropic" provider again
  3. 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:

  1. Using the existing useModelAndProvider hook to get currentModel and currentProvider
  2. Initializing the modal's state with these values as defaults
  3. 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

  1. Status quo - Keep the modal empty, requiring full re-selection each time (more clicks, slower workflow)

Additional context

Implementation details:

  • The ModelAndProviderContext already tracks currentModel and currentProvider in 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:

Image

  • I have verified this does not duplicate an existing feature request

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions