diff --git a/src/views/SearchView.vue b/src/views/SearchView.vue index 2e1ea15..d7e010c 100644 --- a/src/views/SearchView.vue +++ b/src/views/SearchView.vue @@ -798,6 +798,29 @@ async function handleSelectSession(s: SearchSession) { } async function handleNewSession() { + // Save current session messages before creating new one + if (currentSession.value && messages.value.length > 0) { + const lastMsg = messages.value[messages.value.length - 1] + // Save user messages + for (const msg of messages.value) { + if (msg.role === 'user' && msg.query) { + await saveMessage(currentSession.value.id, { + role: 'user', + content: msg.query, + mode: msg.mode || mode.value + }) + } else if (msg.role === 'assistant') { + await saveMessage(currentSession.value.id, { + role: 'assistant', + content: msg.message || msg.answer || '', + mode: msg.mode || mode.value, + results: msg.results + }) + } + } + } + + // Create new session const now = new Date() const timeStr = `${now.getFullYear()}/${(now.getMonth()+1).toString().padStart(2,'0')}/${now.getDate().toString().padStart(2,'0')} ${now.getHours().toString().padStart(2,'0')}:${now.getMinutes().toString().padStart(2,'0')}` const newSession = await createSession(timeStr, mode.value)