From 8c8492ef970ac634be1032088dcdea0bb8de598f Mon Sep 17 00:00:00 2001 From: LukeParkerDev <10430890+Hona@users.noreply.github.com> Date: Tue, 4 Aug 2026 16:47:24 +1000 Subject: [PATCH] fix(app): yield before session history ingestion --- packages/app/src/context/server-session.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/app/src/context/server-session.ts b/packages/app/src/context/server-session.ts index e82030258a..b2fd49251f 100644 --- a/packages/app/src/context/server-session.ts +++ b/packages/app/src/context/server-session.ts @@ -45,6 +45,12 @@ function projectMessageSource(message: Message): SessionMessageInfo[] { ] } +function yieldToMain() { + const scheduler = (globalThis as { scheduler?: { yield: () => Promise } }).scheduler + if (scheduler) return scheduler.yield() + return new Promise((resolve) => setTimeout(resolve, 0)) +} + function needsOlderTurnRoot(source: readonly SessionMessageInfo[]) { const boundary = source.find( (message) => @@ -530,6 +536,7 @@ export function createServerSession( if (!response.data.length) break } const response = pages.at(-1)! + await yieldToMain() const source = pages.flatMap((page) => page.data).toReversed() const normalized = normalizeSessionMessages(sessionID, source) return {