Skip to content

Fix LA dismissal handling and improve restart reliability#588

Merged
bjorkert merged 6 commits intoloopandlearn:live-activityfrom
achkars-org:live-activity
Apr 9, 2026
Merged

Fix LA dismissal handling and improve restart reliability#588
bjorkert merged 6 commits intoloopandlearn:live-activityfrom
achkars-org:live-activity

Conversation

@MtlPhil
Copy link
Copy Markdown

@MtlPhil MtlPhil commented Apr 2, 2026

Improves Live Activity reliability and restart behavior. Fixes a race condition where iOS dismissals could be misclassified as user actions, preventing recovery. Introduces a lightweight “breadcrumb” signal from the widget extension to better detect stale or non-updating activities. Refines foreground logic to restart safely and avoid duplicate or conflicting lifecycle events, while preserving user intent.

MtlPhil and others added 6 commits March 30, 2026 06:45
Dismissing the LA was silently killing Watch data: refreshFromCurrentState
guarded on !dismissedByUser before calling performRefresh, so the Watch
received nothing after a dismiss.

Fix:
- Remove the LA guard from refreshFromCurrentState — Watch and store must
  update regardless of LA state.
- In performRefresh, capture the dedup result (snapshotUnchanged) before
  saving to the store, then run store save + Watch send unconditionally.
  The laEnabled/dismissedByUser/dedup guards now gate only the LA update.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Comment out the line that sends the snapshot to WatchConnectivityManager.
Refactor foreground restart logic to end existing activities before starting a new one.
@bjorkert bjorkert merged commit 4bbe59f into loopandlearn:live-activity Apr 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants