Summary
Currently, users can only select a model when creating a new chat session. Once a session is active, there is no way to change the model without starting a completely new session.
Current Behavior
- Model selection is only available in
ProviderSelectionEmptyState when !selectedSession && !currentSessionId (new session flow)
- Once a session exists, the UI only shows a "Continue conversation" prompt with no model selector
- The
QuickSettingsPanel does not include model selection options
Desired Behavior
Add the ability to switch models during an active chat session, allowing users to:
- Change the model mid-conversation without losing context
- See a model selector/dropdown in the chat header or composer area
- Have the new model take effect for subsequent messages
Suggested Implementation
- Add a model dropdown to
ChatInputControls or a dedicated header component
- Handle model change via WebSocket message or new API endpoint
- Persist the model change to localStorage and session state
Context
This would improve the user experience for scenarios where:
- A user starts with a lighter model (Haiku/Sonnet) and wants to escalate to Opus for complex tasks
- A user wants to compare responses from different models on the same conversation
- A user realizes mid-session that a different model would be more appropriate
Related Files
src/components/chat/view/subcomponents/ProviderSelectionEmptyState.tsx
src/components/chat/hooks/useChatProviderState.ts
src/components/chat/view/subcomponents/ChatComposer.tsx
src/components/quick-settings-panel/view/QuickSettingsContent.tsx
Summary
Currently, users can only select a model when creating a new chat session. Once a session is active, there is no way to change the model without starting a completely new session.
Current Behavior
ProviderSelectionEmptyStatewhen!selectedSession && !currentSessionId(new session flow)QuickSettingsPaneldoes not include model selection optionsDesired Behavior
Add the ability to switch models during an active chat session, allowing users to:
Suggested Implementation
ChatInputControlsor a dedicated header componentContext
This would improve the user experience for scenarios where:
Related Files
src/components/chat/view/subcomponents/ProviderSelectionEmptyState.tsxsrc/components/chat/hooks/useChatProviderState.tssrc/components/chat/view/subcomponents/ChatComposer.tsxsrc/components/quick-settings-panel/view/QuickSettingsContent.tsx