From 3ffaf0b942bce5b6b3a08c330e37f657e0333928 Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Mon, 6 Jul 2026 04:21:14 -0700 Subject: [PATCH] Truncation Logic Refinement Nucleic-Session: FE1E2C94-7945-4827-AF56-74525A9BD434 Co-authored-by: Nucleic --- .../NucleicRemote/Views/SessionDetailView.swift | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/NucleicRemote/NucleicRemote/Views/SessionDetailView.swift b/NucleicRemote/NucleicRemote/Views/SessionDetailView.swift index bf20f89..4825133 100644 --- a/NucleicRemote/NucleicRemote/Views/SessionDetailView.swift +++ b/NucleicRemote/NucleicRemote/Views/SessionDetailView.swift @@ -34,6 +34,15 @@ struct SessionDetailView: View { TranscriptList(events: store.openEvents, scrollToBottomRequest: scrollToBottomRequest, isScrolledToBottom: $isScrolledToBottom) + // Measure the transcript's full height (the floating bar overlays it via safeAreaInset, + // so this frame is the whole screen area the card has to live within) and hand it to the + // action card so it can bound itself. + .background { + GeometryReader { proxy in + Color.clear.preference(key: AvailableHeightKey.self, value: proxy.size.height) + } + } + .onPreferenceChange(AvailableHeightKey.self) { availableHeight = $0 } // The chat bar floats over the scrolling content on Liquid Glass instead of sitting // in a boxed strip below it, so the transcript runs the full height of the screen. .safeAreaInset(edge: .bottom) { actionArea }