diff --git a/app/store/database.go b/app/store/database.go index 0f268c6fa..d95f235cf 100644 --- a/app/store/database.go +++ b/app/store/database.go @@ -513,7 +513,7 @@ func (db *database) getAllChats() ([]Chat, error) { WHERE role = 'user' GROUP BY chat_id ) first_msg ON c.id = first_msg.chat_id - LEFT JOIN messages m ON c.id = m.chat_id + LEFT JOIN messages m ON c.id = m.chat_id AND m.role = 'user' GROUP BY c.id, c.title, c.created_at, first_msg.content ORDER BY last_updated DESC ` diff --git a/app/ui/ui.go b/app/ui/ui.go index 0b32f917e..2ee1cc44c 100644 --- a/app/ui/ui.go +++ b/app/ui/ui.go @@ -1391,8 +1391,9 @@ func chatInfoFromChat(chat store.Chat) responses.ChatInfo { if msg.Role == "user" && userExcerpt == "" { userExcerpt = msg.Content } - // update the updated at time - if msg.UpdatedAt.After(updatedAt) { + // update the updated at time based on user messages only + // this ensures conversations are sorted by last user message, not last response + if msg.Role == "user" && msg.UpdatedAt.After(updatedAt) { updatedAt = msg.UpdatedAt } }