* 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:
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) {
|
||||||
|
|||||||
Reference in new issue
Block a user