You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
macOS: clicking a notification now opens the exact conversation it belongs to (native notification routing)
Desktop: relaunching the app focuses the already-running window instead of opening a second instance
Linux: quit when the window is closed if the system tray is unavailable, so the app can always be reopened
Login screen validates JID format locally before attempting to connect
Enhanced freeze-triage diagnostic probes in fluux.log for troubleshooting
Changed
Group chats: skip member-list discovery for rooms that forbid affiliation lists, reducing traffic and avoiding errors
Group chats: occupant avatar updates coalesced on room join to reduce re-renders
Empty state screens use consistent icons from the icon rail
Fixed
Group chat history: closed catch-up gaps that could silently drop a stretch of messages after long offline periods, with a "load missing messages" marker to recover them (also applied to 1:1 history)
Connections: race IPv4 and IPv6 addresses (Happy Eyeballs) so a broken IPv6 route no longer stalls connecting
OpenPGP: publish your public-key fingerprint in upper-case as required by XEP-0373, improving cross-client key discovery
Presence pills shown in grey while reconnecting instead of disappearing
Encrypted reactions no longer surface as a blank conversation preview
Show a "decrypting…" placeholder while the encryption plugin is still loading instead of a blank message
Opening a contact profile no longer bounces back to the conversation
Link-preview images retried once before being hidden
Stream Management: keep sm in stream features unless it was negotiated inline, fixing some reconnection cases
Desktop: downloading an image now uses the native save dialog
About dialog width reduced
Reconnection details (spinner, retry countdown, cancel) moved back to the sidebar status area — the top connection banner made the UI jump on unstable connections
OpenPGP: fingerprint case normalized in peer-verification trust checks (green lock now reliable across clients)
MUC occupant avatar preserved across presence updates
Desktop: system proxy bypassed for loopback XMPP bridge hop to prevent connection failures
Whisper: allow continuing a whispered conversation from its conversation frame
Whisper menu action uses correct verb form across all locales
Reply-quote bubble uses the same sender color as the original message
Message list: fixed undefined React key on certain message rows
Reply-quote previews render as nested vertical bars instead of raw quote markers
Composer resize scroll correction coalesced into animation frame for smoother behavior
Content ResizeObserver correctly created on same-commit mounts
Image attachment placeholder reserved in error state to prevent layout shift
MAM: bodiless encrypted messages from archive surfaced instead of dropped
MAM: backward-pagination cursor corrected for scroll-up history loading