Skip to content

feat: add model switching during active chat session #622

@KingingWang

Description

@KingingWang

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:

  1. Change the model mid-conversation without losing context
  2. See a model selector/dropdown in the chat header or composer area
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions