From fb36a01ffe609c16db8fbf8d03f395aa040c86ed Mon Sep 17 00:00:00 2001 From: Matteo Celani <26189482+matteocelani@users.noreply.github.com> Date: Tue, 21 Apr 2026 21:08:06 +0200 Subject: [PATCH] app/ui: fix model picker showing stale model after switching chats (#15280) * app/ui: fix model picker showing stale model after switching chats Optimistic messages created during streaming were storing the full Model object instead of the model name string. When switching back to a chat with cached streaming data, the restore effect read an object where it expected a string, causing the model picker to fail matching and remain stuck on the previous chat's model. * app/ui: fix two more instances of Model object passed as model name Fix the same bug at lines 523 and 536 in the assistant_with_tools event handler, where selectedModel (object) was used instead of selectedModel.model (string). --- app/ui/app/src/hooks/useChats.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/ui/app/src/hooks/useChats.ts b/app/ui/app/src/hooks/useChats.ts index 2493e5bee..5aac35285 100644 --- a/app/ui/app/src/hooks/useChats.ts +++ b/app/ui/app/src/hooks/useChats.ts @@ -381,7 +381,7 @@ export const useSendMessage = (chatId: string) => { role: "assistant", content: "", thinking: "", - model: effectiveModel, + model: effectiveModel.model, }), ); lastMessage = newMessages[newMessages.length - 1]; @@ -433,7 +433,7 @@ export const useSendMessage = (chatId: string) => { role: "assistant", content: "", thinking: "", - model: effectiveModel, + model: effectiveModel.model, }), ); lastMessage = newMessages[newMessages.length - 1]; @@ -520,7 +520,7 @@ export const useSendMessage = (chatId: string) => { thinkingTimeStart: lastMessage.thinkingTimeStart || event.thinkingTimeStart, thinkingTimeEnd: event.thinkingTimeEnd, - model: selectedModel, + model: selectedModel.model, }); newMessages[newMessages.length - 1] = updatedMessage; } else { @@ -533,7 +533,7 @@ export const useSendMessage = (chatId: string) => { tool_calls: event.toolCalls, thinkingTimeStart: event.thinkingTimeStart, thinkingTimeEnd: event.thinkingTimeEnd, - model: selectedModel, + model: selectedModel.model, }), ); } @@ -699,7 +699,7 @@ export const useSendMessage = (chatId: string) => { queryClient.setQueryData(["chat", newId], { chat: new Chat({ id: newId, - model: effectiveModel, + model: effectiveModel.model, messages: [ new Message({ role: "user",