Model selection bug in ChatService (#909)

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Vedant Mahajan 2026-05-08 12:59:58 +05:30 committed by GitHub
parent 54bc618010
commit 35c606028c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -164,8 +164,11 @@ export function ChatSidebar({
const isMobile = useIsMobile()
const isPageDesktop = layout === "page" && !isMobile
const [input, setInput] = useState("")
const [selectedModel, setSelectedModel] =
useState<ModelId>("claude-sonnet-4.6")
const [selectedModel, setSelectedModel] = useState<ModelId>(
initialSelectedModel ?? "claude-sonnet-4.6",
)
const selectedModelRef = useRef(selectedModel)
selectedModelRef.current = selectedModel
const [copiedMessageId, setCopiedMessageId] = useState<string | null>(null)
const [hoveredMessageId, setHoveredMessageId] = useState<string | null>(null)
const [messageFeedback, setMessageFeedback] = useState<
@ -187,6 +190,8 @@ export function ChatSidebar({
const sentQueuedMessageRef = useRef<string | null>(null)
const { selectedProject } = useProject()
const { allProjects } = useContainerTags()
const selectedProjectRef = useRef(selectedProject)
selectedProjectRef.current = selectedProject
const chatSpaceLabel = useMemo(
() =>
getChatSpaceDisplayLabel({
@ -206,23 +211,26 @@ export function ChatSidebar({
(id: string) => setThreadId(id),
[setThreadId],
)
const chatApiBase =
process.env.NEXT_PUBLIC_BACKEND_URL ?? "https://api.supermemory.ai"
const chatTransport = useMemo(
() =>
new DefaultChatTransport({
api: `${process.env.NEXT_PUBLIC_BACKEND_URL ?? "https://api.supermemory.ai"}/chat`,
api: `${chatApiBase}/chat`,
credentials: "include",
prepareSendMessagesRequest: ({ messages }) => ({
body: {
messages,
metadata: {
chatId: chatIdRef.current,
projectId: selectedProject,
model: selectedModel,
projectId: selectedProjectRef.current,
model: selectedModelRef.current,
},
},
}),
}),
[selectedProject, selectedModel],
[chatApiBase],
)
const [pendingThreadLoad, setPendingThreadLoad] = useState<{
id: string
@ -502,6 +510,10 @@ export function ChatSidebar({
status !== "streaming" &&
sentQueuedMessageRef.current !== queuedMessage
) {
if (initialSelectedModel && selectedModel !== initialSelectedModel) {
setSelectedModel(initialSelectedModel)
return
}
sentQueuedMessageRef.current = queuedMessage
if (!threadId) setThreadId(fallbackChatId)
analytics.chatMessageSent({ source: queuedMessageSource })
@ -512,6 +524,8 @@ export function ChatSidebar({
isChatOpen,
queuedMessage,
queuedMessageSource,
initialSelectedModel,
selectedModel,
status,
sendMessage,
onConsumeQueuedMessage,