mirror of https://github.com/ollama/ollama
app: sort conversations by last user message
Conversations in the sidebar were being sorted by the timestamp of the last message (including assistant responses). This changes the sorting to use only user messages, matching the behavior of ChatGPT and Claude. Fixes #12958
This commit is contained in:
parent
4ff8a691bc
commit
7cdd3c9d42
|
|
@ -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
|
||||
`
|
||||
|
|
|
|||
|
|
@ -1365,8 +1365,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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue