From 122f33fdbf264791b69e4e7c2420116c928b3de3 Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Mon, 6 Jul 2026 19:41:58 -0700 Subject: [PATCH] Transcript Incremental Projection Nucleic-Session: 0FFD007B-0696-4517-9429-129C7B0FD5AC Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote/Views/SessionDetailView.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/NucleicRemote/NucleicRemote/Views/SessionDetailView.swift b/NucleicRemote/NucleicRemote/Views/SessionDetailView.swift index ba56965..2576a4e 100644 --- a/NucleicRemote/NucleicRemote/Views/SessionDetailView.swift +++ b/NucleicRemote/NucleicRemote/Views/SessionDetailView.swift @@ -685,7 +685,9 @@ struct TranscriptList: View { } action: { _, distance in if distance <= bottomFollowThreshold { isScrolledToBottom = true - } else if !transcriptSettling, distance > bottomUnfollowThreshold, isUserScrolling { + jumpingToBottom = false // arrived — the jump is complete + } else if !transcriptSettling, distance > bottomUnfollowThreshold, isUserScrolling, + !jumpingToBottom { // While the chat is opening the layout grows over a few passes and the offset // lags each growth by a frame — those frames read "not at bottom" even though // `.defaultScrollAnchor(.bottom)` is about to re-pin, so settling accepts