You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Let side chats choose their own model and reasoning effort #30132
A side chat cannot take its own model or reasoning effort. It copies both from the parent thread when it is created. The side chat's first turn then runs on that copied model.
Related: #29966 (side chats start Supervised) and #29994 (inherit parent permissions) cover the permission mode on the same creation path. This issue covers the model and effort.
Use case
The main thread runs on a strong model, for example Opus at high effort, to do the work. A side chat should recap the thread or answer a side question on a cheaper, faster model, for example a Sonnet-class model at low effort. The main thread keeps its settings.
Current behavior
The fork command (thread.fork) takes a title, a sideChat flag and a source point. It has no model or effort field.
The new side chat copies the parent's modelSelection. In a local thread database, all four side chats made from parents on different models and effort levels copied the parent's model and effort exactly.
The side chat's first turn is sent without a model field, so it uses the copied model.
I read this from the source. I did not test a model change made in the side chat composer after creation, so I do not know whether that works.
Requested behavior
Any one of these would meet the use case:
Let the user pick a model and effort when opening a side chat. This could be a field on the /side or /btw action.
Add a setting for the default side-chat model and effort, separate from the parent's. Use it at creation, at project or environment scope.
Confirm that changing the model in the side chat composer before the first message takes effect on that message, and document it.
Notes
The delegate_task tool already takes its own target.model. The side chat button has no equivalent.
Relevant code: ThreadForkService.ts (copies the parent's thread), useSideChat.ts (sends the first turn).
Activity