fix(#204): dynamically reset and reload chat title when creating or switching sessions (#247)

* fix(#204): dynamically reset and reload chat title when creating or switching sessions

* fix(#204): refresh session list on message completion to catch auto-generated titles
This commit is contained in:
M57 authored and GitHub committed 2026-06-21 19:45:08 +03:00
1 parent 0c192eddad
commit 4715c85185
1 file changed
+7 -1
@@ -359,6 +359,8 @@ class ChatViewModel(
dao.upsert(msgToPersist.toEntity(sid)) dao.upsert(msgToPersist.toEntity(sid))
} }
} }
// Refresh session list to catch newly generated titles
loadSessions()
} }
private fun handleMessageDone(event: WsEvent.MessageDone) { private fun handleMessageDone(event: WsEvent.MessageDone) {
@@ -500,6 +502,7 @@ class ChatViewModel(
isLoading = false, isLoading = false,
messages = emptyList(), messages = emptyList(),
streamingMessage = null, streamingMessage = null,
chatTitle = "Hermes",
) )
} }
addSystemMessage("Session created", persist = true) addSystemMessage("Session created", persist = true)
@@ -783,6 +786,7 @@ class ChatViewModel(
isLoading = true, isLoading = true,
messages = emptyList(), messages = emptyList(),
streamingMessage = null, streamingMessage = null,
chatTitle = "Hermes",
) )
} }
streamingMessageId = null streamingMessageId = null
@@ -816,7 +820,7 @@ class ChatViewModel(
streamingMessageId = null streamingMessageId = null
_uiState.update { _uiState.update {
val title = it.sessions.find { s -> s.id == sessionId }?.title ?: it.chatTitle val title = it.sessions.find { s -> s.id == sessionId }?.title ?: "Hermes"
it.copy( it.copy(
isLoading = true, isLoading = true,
messages = emptyList(), messages = emptyList(),
@@ -841,6 +845,8 @@ class ChatViewModel(
} }
// Step 3: Load fresh messages from REST and merge // Step 3: Load fresh messages from REST and merge
loadSessionMessages(sessionId) loadSessionMessages(sessionId)
// Step 4: Refresh session list to get latest titles
loadSessions()
} }
private fun loadCachedMessages(sessionId: String) { private fun loadCachedMessages(sessionId: String) {