9 commits over dnd.3.
What's better than dnd.3 (in plain terms)
- Your active conversations stay put. In dnd.3, a chat you were actively messaging — especially a busy group — could drop out of the chat list and only reappear when a new message arrived, then vanish again. Fixed: the chat now holds its place at the top.
- Busy group chats are lighter on your phone. dnd.3 could re-download a group's member list from the server on almost every incoming message; now it does that at most once every few minutes — less battery and data on active groups.
- Fewer random crashes. Fixed a crash that could hit when a message arrived at the same moment a conversation was opening.
- Better under-the-hood crash reporting. If the app ever closes on its own, it can now record the reason — invisible day to day, but it helps chase down the rare random close.
Fixes (technical)
- Active chat vanishing from the list.
updateChatLatestMessagehad no forward-only guard, so incremental sync could feed it an older delta message (an edit / read-receipt / backfill on a days-old message) and rewind the chat's sort key, burying an actively-messaged chat. The latest-message pointer now only advances in time, with a 2s tolerance for temp→real send swaps. This is an upstream ordering bug (still live indevelopment) — PR candidate. - Group participant refetch storm. A busy group whose sender handles carried a null/mismatched
originalROWIDre-fetched participants on nearly every inbound message. Rate-limited to once per 5 min per chat; genuine membership changes still refresh immediately. - Crash when a message lands before the messages view finishes loading.
Diagnostics (silent unless something fails)
- Android exit-reason capture now reports on every path, runs off the main thread, and no longer false-alarms on desktop.
- Log file no longer loses lines to concurrent isolate writes.
Assets
bluebubbles-v2.0.0.85-dnd.4-android.apk— Android (prod flavor)bluebubbles-desktop-2.0.0-13-x86_64.pkg.tar.zst— Arch / pacmanbluebubbles-linux-x64-v2.0.0.85-dnd.4.tar.gz— raw Linux x64 bundle (extract, runbundle/bluebubbles)