Message addition performance improvements

This commit is contained in:
Shantur Rathore
2025-12-03 17:07:05 +00:00
parent cfbd0bdffa
commit 57c1605242
2 changed files with 7 additions and 25 deletions

View File

@@ -296,9 +296,6 @@ export function createInstanceMessageStore(instanceId: string): InstanceMessageS
ensureSessionEntry(sessionId)
const incomingIds = inputs.map((item) => item.id)
const incomingIdSet = new Set(incomingIds)
const existingIds = state.sessions[sessionId]?.messageIds ?? []
const removedIds = existingIds.filter((id) => !incomingIdSet.has(id))
const normalizedRecords: Record<string, MessageRecord> = {}
const now = Date.now()
@@ -331,18 +328,6 @@ export function createInstanceMessageStore(instanceId: string): InstanceMessageS
...state.permissions.byMessage,
}
removedIds.forEach((id) => {
if (nextMessages[id]?.sessionId === sessionId) {
delete nextMessages[id]
delete nextMessageInfoVersion[id]
delete nextPendingParts[id]
if (nextPermissionsByMessage[id]) {
delete nextPermissionsByMessage[id]
}
}
messageInfoCache.delete(id)
})
Object.entries(normalizedRecords).forEach(([id, record]) => {
nextMessages[id] = record
})

View File

@@ -62,16 +62,13 @@ function findPendingMessageId(
role: MessageRole,
): string | undefined {
const messageIds = store.getSessionMessageIds(sessionId)
for (let i = messageIds.length - 1; i >= 0; i -= 1) {
const record = store.getMessage(messageIds[i])
if (!record) continue
if (record.sessionId !== sessionId) continue
if (record.role !== role) continue
if (record.status === "sending") {
return record.id
}
}
return undefined
const lastId = messageIds[messageIds.length - 1]
if (!lastId) return undefined
const record = store.getMessage(lastId)
if (!record) return undefined
if (record.sessionId !== sessionId) return undefined
if (record.role !== role) return undefined
return record.status === "sending" ? record.id : undefined
}
function handleMessageUpdate(instanceId: string, event: MessageUpdateEvent | MessagePartUpdatedEvent): void {