fix(chat): keep messages chronological across ID rollover
This commit is contained in:
@@ -1490,7 +1490,8 @@ export const useSessionUIStore = create<SessionUIState>()((set, get) => ({
|
||||
const revertToId = currentSession?.revert?.messageID
|
||||
let targetMessage: typeof messages[number] | undefined
|
||||
if (revertToId) {
|
||||
targetMessage = [...userMessages].reverse().find((m) => m.id < revertToId)
|
||||
const revertIndex = userMessages.findIndex((message) => message.id === revertToId)
|
||||
targetMessage = revertIndex > 0 ? userMessages[revertIndex - 1] : undefined
|
||||
} else {
|
||||
targetMessage = userMessages[userMessages.length - 1]
|
||||
}
|
||||
@@ -1537,7 +1538,8 @@ export const useSessionUIStore = create<SessionUIState>()((set, get) => ({
|
||||
await refetchSessionMessages(sessionId)
|
||||
const messages = getSyncMessages(sessionId)
|
||||
const userMessages = messages.filter((m) => m.role === "user")
|
||||
const targetMessage = userMessages.find((m) => m.id > revertToId)
|
||||
const revertIndex = userMessages.findIndex((message) => message.id === revertToId)
|
||||
const targetMessage = revertIndex >= 0 ? userMessages[revertIndex + 1] : undefined
|
||||
|
||||
if (targetMessage) {
|
||||
await get().revertToMessage(sessionId, targetMessage.id, { skipRedoPush: true })
|
||||
|
||||
Reference in New Issue
Block a user