What's new
- Device-to-device account migration — moving to a new device (across iPhone / Android / Mac / Linux) is now one tap. The old device sends a sealed transfer over your local Wi-Fi; the new device restores and rotates keys before going live. A mandatory preflight checks both ends before any data leaves, so a failed migration can't strand you.
- 100,000-member groups, no startup wait — the server stores no group data or member list, and clients now resolve sender names and avatars per message batch on demand instead of preloading the whole roster at startup. A 100,000-member group opens as fast as a 100-member one.
- Reader View for markdown content — chat bubbles stay plain text for smooth scrolling, but text messages containing markdown formatting now show a small
M↓indicator. Double-tap the message, or open the long-press menu and tap Reader View, to see the fully rendered version with headings, lists, tables, code blocks, and more.
Privacy
- Tighter group display privacy — viewing group members, resolving sender names, or scrolling a group chat never asks the server for other members' encryption keys. Keys are only fetched when you actually start a direct message with someone. Preemptively closes a mass-spam attack vector.
Reliability
- Avatar requests no longer retry-storm dead URLs — a short 4xx negative cache holds failed avatars so a deleted/moved avatar doesn't trigger repeated fetches.
- Call ringtone now stops cleanly when an early state guard rejects the call (it could previously keep playing).
- Top-news toast detail sheet caps at 85% screen height — long announcements no longer push the close button off-screen on small devices.
- Message credential now shows file name for file messages; self-recorded voice messages no longer hang on a spinner; image save on iOS uses the correct path.
- Search results reliably jump to the matching message, including older history.
- Stability and privacy improvements.
BlindPost