Heavy-Use Reliability dnd.3 (v2.0.0+85 + upstream 2026-06-25)
Heavy-use reliability, continued — 11 commits over dnd.2 (v2.0.0+85, upstream 2026-06-25 baseline).
Fixes
- Tapbacks no longer crash. Sending Ha Ha / emphasize / any in-app reaction hit a null-check on the reaction's missing temp GUID and was silently dropped (Android + desktop). Also filed upstream as BlueBubblesApp#3086.
- Same-chat re-entry via a share/notification intent no longer guts the open conversation ("Error loading message at index N"). Replaced the ownership-epoch approach with a mounted-view guard in
openChat. (BlueBubblesApp#3084) - MMS/group participants de-duplicated by address+service; pre-existing duplicates collapsed.
- Unknown sender in group notifications + the infinite loading spinner resolved. (BlueBubblesApp#3062)
- Outbound messages are never silently dropped when the prep phase fails — bounded retry, then a visible/retryable failure. (BlueBubblesApp#3074)
- New chats appear in the list at runtime, gated on
findChatByGuid. (BlueBubblesApp#3078) - Contact sync debounced/deferred while backgrounded to avoid cached-process binder kills.
- Latest-message linking moved onto the guarded sync path.
Diagnostics (silent unless something fails)
- Android process exit-reason capture on an unclean restart (ApplicationExitInfo).
- Startup / white-screen / native-kill breadcrumb instrument — routine logging quieted.
Assets
bluebubbles-v2.0.0.85-dnd.3-android.apk— Android (prod flavor)bluebubbles-desktop-2.0.0-11-x86_64.pkg.tar.zst— Arch / pacmanbluebubbles-linux-x64-v2.0.0.85-dnd.3.tar.gz— raw Linux x64 bundle