// AppState.swift — global app state, credential lifecycle import SwiftUI @MainActor final class AppState: ObservableObject { static let shared = AppState() @Published var credential: SidecarCredential? = nil private init() { // Try loading persisted credential on launch credential = try? Keychain.shared.load(key: "piremote.credential") } func didPair(credential: SidecarCredential) { self.credential = credential try? Keychain.shared.save(credential, key: "piremote.credential") } func unpair() { credential = nil Keychain.shared.delete(key: "piremote.credential") } }