diff --git a/NucleicRemote/NucleicRemote/LiveActivityManager.swift b/NucleicRemote/NucleicRemote/LiveActivityManager.swift index 0ed2631..ee99985 100644 --- a/NucleicRemote/NucleicRemote/LiveActivityManager.swift +++ b/NucleicRemote/NucleicRemote/LiveActivityManager.swift @@ -88,6 +88,12 @@ final class LiveActivityManager { if let existing = Activity.activities.first { activity = existing observePushToken(existing) + // Dismiss any duplicates so only the adopted Activity renders. iOS stacks multiple + // Activities of one type in the Dynamic Island — an orphan (from a prior launch that + // was killed before `end()`) then shows *its* stale state in the collapsed pill while + // expanding reveals the fresh one, and `end()` on completion would leave it lingering + // on the last "needs attention" glance. Keep exactly one. + endStrays(keeping: existing.id) enqueue(state) } else { // `pushType: .token` opts the activity into APNs updates — the Macs push new