Repository navigation
feat(desktop): allow Side Conversations to select an independent model #4495
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requeststaleNo qualifying activity within the lifecycle policy windowNo qualifying activity within the lifecycle policy window
Description
Problem
Desktop Side Conversations inherit the source Session's model when the temporary fork is created, but the model is rendered as a read-only label. The Side Conversation cannot select another enabled model without closing the panel and changing the source Session first.
That prevents several common auxiliary workflows:
- keep a high-capability model on the main task while using a faster or lower-cost model for a short side question;
- choose a model with a capability needed only by the Side Conversation without changing the main task;
- recover a Side Conversation whose inherited model or connection is no longer available, while preserving its accepted transcript.
The fork is already a separate Session and its permission mode can change independently after creation. Model selection should follow the same Session-local boundary.
Desired outcome
Expose the normal model picker in a committed Desktop Side Conversation and apply the selection to that temporary Session only.
- A new Side Conversation still inherits the source Session's exact connection and model.
- After creation, the source and Side Conversation model selections are independent.
- Changing the Side Conversation model updates the existing temporary Session; it does not recreate the fork, clear its transcript, consume its draft, or mutate the source Session.
- Changing the source Session model does not silently overwrite an existing Side Conversation selection.
- The picker uses the current Host-authorized model catalog and preserves exact connection identity.
- A rejected or unavailable selection leaves the current Side Conversation model unchanged and surfaces the failure.
- Model changes follow the same active-Turn admission rule as ordinary Sessions.
- Cross-model history replay keeps the existing compatibility rules: portable history remains available and provider-specific state is reused only when compatible with the selected model.
Acceptance criteria
- The Side Conversation Composer shows the same model-selection affordance as the main conversation after its fork is ready.
- Selecting another enabled model updates the Side Conversation Session and the displayed model without changing the source Session.
- Existing Side Conversation messages, staged quotes, attachments, and drafts remain intact across a successful model change.
- A model change is rejected while the Side Conversation has a running Turn, with no partial UI or Session update.
- A failed model change remains retryable and does not close or recreate the Side Conversation.
- Closing the tab, navigation cleanup, hidden-session behavior, and restart cleanup remain unchanged.
Non-goals
- Synchronizing later model changes between the source and Side Conversation
- Adding
/compactor other slash commands to Side Conversations - Changing permission inheritance or tool policy
- Making temporary Side Conversations durable or promoting them to ordinary Sessions
- Choosing a globally different default model for every Side Conversation
This is a focused Side Conversation follow-up under #4331.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requeststaleNo qualifying activity within the lifecycle policy windowNo qualifying activity within the lifecycle policy window
Activity
Astro-Han commentedon Sep 1, 2026
I think this would have a issue with cache hit so it might not be a good idea. I have not checked upon the code yet.
github-actions commentedon Oct 2, 2026
This issue has had no human activity for 30 days and has been marked stale. It will be closed in 30 days unless someone comments.
If the issue is still current, please confirm it against the latest
mainand add any information that would help move it forward. Assigned issues and issues labelledpinnedare exempt from this policy.