From de9aa05baec67b0e271a6c43583d9f0ec368c6b0 Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Wed, 6 May 2026 19:58:28 +0300 Subject: [PATCH] perf: reduce sync recovery message fetch size Limits reconnect and repair message fetches to recent messages Reduces repeated bandwidth for large tool outputs Keeps normal session loading unchanged --- packages/ui/src/sync/sync-context.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/ui/src/sync/sync-context.tsx b/packages/ui/src/sync/sync-context.tsx index 15fae35a..5b2e7452 100644 --- a/packages/ui/src/sync/sync-context.tsx +++ b/packages/ui/src/sync/sync-context.tsx @@ -122,7 +122,8 @@ export function useAllLiveSessions(): Session[] { let bootingRoot = false let bootedAt = 0 const BOOT_DEBOUNCE_MS = 1500 -const RECONNECT_MESSAGE_LIMIT = 200 +const RECONNECT_MESSAGE_LIMIT = 30 +const REPAIR_MESSAGE_LIMIT = 30 const RECONNECT_SKIP_PARTS = new Set(["patch", "step-start", "step-finish"]) const requestSignature = (items: Array<{ id: string }> | undefined): string => { if (!items || items.length === 0) return "" @@ -216,7 +217,7 @@ async function repairSessionParts( ) { const scopedClient = opencodeClient.getScopedSdkClient(directory) const result = await retry(() => - scopedClient.session.messages({ sessionID, limit: RECONNECT_MESSAGE_LIMIT }), + scopedClient.session.messages({ sessionID, limit: REPAIR_MESSAGE_LIMIT }), ) const records = (result.data ?? []).filter((record: { info?: { id?: string } }) => !!record?.info?.id) if (records.length === 0) return