From c4baa31f5291cdd658f7c9fb31cc7a441f3fd622 Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Sun, 5 Jul 2026 21:51:39 -0700 Subject: [PATCH] Tab Bar Animation Fix Nucleic-Session: 09F787AF-3A70-4978-8762-9827C1CC0774 Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote/Models/RemoteStore.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/NucleicRemote/NucleicRemote/Models/RemoteStore.swift b/NucleicRemote/NucleicRemote/Models/RemoteStore.swift index d5cfadc..eada7ca 100644 --- a/NucleicRemote/NucleicRemote/Models/RemoteStore.swift +++ b/NucleicRemote/NucleicRemote/Models/RemoteStore.swift @@ -66,6 +66,13 @@ final class RemoteStore: ObservableObject { private var openSessionHostID: String? @Published private(set) var openEvents: [AgentEvent] = [] @Published private(set) var openApprovals: [ApprovalRequest] = [] + /// Whether the compact (iPhone) Sessions tab currently has a session detail pushed. Distinct + /// from `openSessionID`, which is the *data* subscription and is only torn down on the detail's + /// `onDisappear` — and SwiftUI fires that at the *end* of the pop transition, so keying the + /// floating tab bar's visibility off it left the bar sliding back up 1–2s after a back-swipe. + /// `SessionsView` sets this straight from its navigation path, which flips the instant the pop + /// begins, so the bar reflows immediately while the transcript state survives the animation. + @Published var compactDetailPresented = false /// The open session's full diff (the Mac Diff tab's patch), fetched on demand when the /// user opens the Diff tab and the host advertises `canFetchDiff`. Nil until it arrives. @Published private(set) var openDiff: WireSessionDiff?