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?