diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx index 722a688bba..2d3e31355a 100644 --- a/packages/app/src/pages/session.tsx +++ b/packages/app/src/pages/session.tsx @@ -246,14 +246,19 @@ function createSessionHistoryWindow(input: SessionHistoryWindowInput) { if (added <= 0) return if (growth <= 0) return + + if (opts?.prefetch) { + const current = turnStart() + preserveScroll(() => setTurnStart(current + growth)) + return + } + if (turnStart() !== start) return - const reveal = !opts?.prefetch const currentRendered = renderedUserMessages().length const base = Math.max(beforeRendered, currentRendered) - const target = reveal ? Math.min(afterVisible, base + turnBatch) : base - const nextStart = Math.max(0, afterVisible - target) - preserveScroll(() => setTurnStart(nextStart)) + const target = Math.min(afterVisible, base + turnBatch) + preserveScroll(() => setTurnStart(Math.max(0, afterVisible - target))) } const onScrollerScroll = () => {