From 3b3071c975f2bd6cd69c75cccc3a8f362a506912 Mon Sep 17 00:00:00 2001 From: Jennifer Weber Date: Wed, 27 Aug 2025 17:08:40 -0700 Subject: [PATCH] Fix for maintining the new item optimization in queue store --- src/stores/queueStore.ts | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/stores/queueStore.ts b/src/stores/queueStore.ts index 11099803b..3cb92cb96 100644 --- a/src/stores/queueStore.ts +++ b/src/stores/queueStore.ts @@ -417,6 +417,13 @@ export class TaskItemImpl { } } +function executionStartTimestamp(taskItem: TaskItem) { + const status = 'status' in taskItem ? taskItem.status : undefined + const messages = status?.messages || [] + const message = messages.find((message) => message[0] === 'execution_start') + return message ? message[1].timestamp : undefined +} + export const useQueueStore = defineStore('queue', () => { const runningTasks = ref([]) const pendingTasks = ref([]) @@ -437,6 +444,13 @@ export const useQueueStore = defineStore('queue', () => { tasks.value.flatMap((task: TaskItemImpl) => task.flatten()) ) + const lastExecutionStartTimestamp = computed(() => { + const latestItemWithTimestamp = historyTasks.value.length + ? historyTasks.value.find((item) => item.executionStartTimestamp != null) + : undefined + return latestItemWithTimestamp?.executionStartTimestamp ?? -1 + }) + const hasPendingTasks = computed(() => pendingTasks.value.length > 0) const update = async () => { @@ -467,7 +481,13 @@ export const useQueueStore = defineStore('queue', () => { const allIndex = new Set( history.History.map((item: TaskItem) => item.prompt.priority) ) - const newHistoryItems = toClassAll(history.History) + const newHistoryItems = toClassAll( + history.History.filter( + (item) => + (executionStartTimestamp(item) ?? Number.MAX_SAFE_INTEGER) > + lastExecutionStartTimestamp.value + ) + ) const existingHistoryItems = historyTasks.value.filter((item) => allIndex.has(item.queueIndex) )