diff --git a/NucleicRemote/NucleicRemote/NucleicRemoteApp.swift b/NucleicRemote/NucleicRemote/NucleicRemoteApp.swift index 450a3a3..7b055d8 100644 --- a/NucleicRemote/NucleicRemote/NucleicRemoteApp.swift +++ b/NucleicRemote/NucleicRemote/NucleicRemoteApp.swift @@ -3,12 +3,21 @@ import SwiftUI @main struct NucleicRemoteApp: App { @StateObject private var store = RemoteStore() + @Environment(\.scenePhase) private var scenePhase var body: some Scene { WindowGroup { RootView() .environmentObject(store) - .onAppear { store.onAppear() } + .onAppear { + store.onAppear() + // Anonymous, opt-out, once-a-day DAU heartbeat (docs/CLOUD_INFRA.md ยง4). + Task { await HeartbeatReporter.reportIfDue() } + } + // Re-check on every foreground so a new active day is counted. + .onChange(of: scenePhase) { _, phase in + if phase == .active { Task { await HeartbeatReporter.reportIfDue() } } + } } } }