fix(queue): preserve pending items during drains

This commit is contained in:
Peter Steinberger
2026-04-18 20:18:39 +01:00
parent 511a6c0ad0
commit 712644f0d9
3 changed files with 3 additions and 3 deletions

View File

@@ -162,7 +162,7 @@ function scheduleAnnounceDrain(key: string) {
prompt, prompt,
internalEvents: internalEvents.length > 0 ? internalEvents : last.internalEvents, internalEvents: internalEvents.length > 0 ? internalEvents : last.internalEvents,
}); });
queue.items.splice(0); queue.items.splice(0, items.length);
if (summary) { if (summary) {
clearQueueSummaryState(queue); clearQueueSummaryState(queue);
} }

View File

@@ -219,7 +219,7 @@ export function scheduleFollowupDrain(
enqueuedAt: Date.now(), enqueuedAt: Date.now(),
...routing, ...routing,
}); });
queue.items.splice(0); queue.items.splice(0, groupItems.length);
if (pendingSummary) { if (pendingSummary) {
clearQueueSummaryState(queue); clearQueueSummaryState(queue);
pendingSummary = undefined; pendingSummary = undefined;

View File

@@ -167,7 +167,7 @@ export function consumeSystemEventEntries(
) { ) {
return []; return [];
} }
const removed = entry.queue.splice(0).map(cloneSystemEvent); const removed = entry.queue.splice(0, consumedEntries.length).map(cloneSystemEvent);
if (entry.queue.length === 0) { if (entry.queue.length === 0) {
entry.lastText = null; entry.lastText = null;
entry.lastContextKey = null; entry.lastContextKey = null;