-
Pl
chevron_right
ProcessOne: Fluux Messenger 0.15.2: RTL Support, Faster Reconnection, and a Pile of Reliability Fixes
news.movim.eu / PlanetJabber • 21 hours ago • 3 minutes
This is a maintenance release with a few notable additions: RTL language support, faster reconnection after stream-management resume, and a handful of reliability fixes scattered across reconnect edge cases.
RTL layout support (Arabic and Hebrew) and User interface tweaks
Fluux Messenger now renders correctly in right-to-left languages. Arabic and Hebrew translations are included in this release. Both are beta quality, so if you spot translation errors or layout glitches, please open an issue. Getting community feedback early is the fastest way to improve coverage.
On the UI side, blockquotes now use decorative quotation marks, a small polish detail that also helps in RTL contexts where quote direction matters.
Reconnection: faster and far more reliable
A significant chunk of this release is dedicated to making reconnects work the way they should. If you&aposve seen Fluux Messenger freeze after waking your laptop, or loop on reconnect attempts, most of those scenarios are addressed here.
Faster resume: When stream management successfully resumes a session, the client now skips redundant MAM queries. If the stream was cleanly resumed, there&aposs no need to re-fetch history, so reconnection feels almost instant in good network conditions.
Sleep/wake handling: Two separate bugs could cause the app to stall after a system sleep. One was a Tauri-specific reconnect stall, now recovered via native keepalive with a proxy fallback. The other was a post-wake auto-connect stall that happened after SASL negotiation completed but before the session was fully established. Both are fixed.
Loop prevention:
The reconnect attempt counter was incorrectly capped at the backoff ceiling, meaning it would stop growing and could trigger premature reconnect loops. That&aposs fixed, and superseded connection attempts now get a dedicated error class so they&aposre handled cleanly rather than causing UI freezes.
MUC room state: Room state is now properly preserved across stream-management resume and interrupted fresh sessions. Previously, a reconnect could wipe stored room messages or fail to restore saved rooms, leaving history empty after resume. Both are fixed: live room messages are written directly to IndexedDB, and rooms are restored through the connect call so history loads correctly after SM resume.
SASL2 and FAST token improvements
Several fixes land around SASL2 and FAST token handling:
-
The websocket stream
fromattribute is now correctly set, which is required for SASL2 to be accepted on compliant servers. - FAST token rotation now works correctly across page-reload reconnects.
- Token authentication is retried when the server field was initially empty on login.
- A spurious "FAST token deleted" log message that appeared on first login (when no token existed yet) is suppressed.
- The SASL2 user-agent identifier is updated, and server-side FAST token invalidation is triggered on logout.
-
The outbound stream-management state is now hydrated on resume, preventing an
ackQueuecrash that could occur in certain reconnect scenarios.
Performance: per-conversation subscriptions
Typing indicators and draft state now use per-conversation subscriptions rather than a single global subscription. This reduces re-renders in the conversation list during background sync, which was noticeable when many conversations were active simultaneously. The list stays responsive while the client is catching up on missed messages.
Other fixes worth noting
-
Notifications:
On web, notifications now use
ServiceWorker.showNotification()for reliable delivery, replacing the previous approach that could silently fail. - Image lightbox: The lightbox no longer upscales images past their natural resolution, displaying the full-resolution original at actual size.
- Web image cache: If the cache fetch fails, the client now falls back to loading directly from the URL instead of showing nothing.
- Upload errors: HTTP upload errors are now displayed in the UI rather than failing silently. HTTP upload URLs are also now allowed.
- Dynamic import failures: On failure, the client probes the runtime before reloading, and auto-reloads if the probe succeeds, skipping unnecessary hard reloads.
- Discovery calls: Service discovery calls now run before the serial session-setup chain, which can shave time off the initial connection in some server configurations.
-
Accessibility:
The scroll-to-bottom FAB now uses
inertinstead ofaria-hidden, and the message toolbar "more" menu button vertical alignment is fixed.
Getting 0.15.2
The latest release is available on our website. The full changelog is in CHANGELOG.md on Github.
If you run into issues, especially around the new RTL translations or any of the reconnect scenarios, please open an issue. This release fixes a lot of edge cases and we want to make sure nothing slipped through.