Release
Velta 1.5.1: a watchdog for the core, steadier lists
· 3 min read
When the core stalls, the Relays screen and chat list keep their last good state behind a Retry banner, a watchdog restarts a stuck core, and transfers, search and first sync finally show progress.
This one is about honesty under load. The reports behind 1.5 all shared one symptom: the app went quiet — a frozen screen, an empty list — and nothing said why. 1.5.1 makes the app say why, and fixes what it could at the source.
Lists that keep their word
A timed-out request used to be drawn as an empty result. The Relays screen went blank, the Bots chip dropped to zero, and none of it was true. Now a failed load keeps the last good data on screen and admits the failure with a “Couldn't load — Retry” banner. The same banner appears over the chat list when a refresh fails: the stale rows stay, the app says they are stale.
A watchdog for the core
Desktop and Android now ping the core every few seconds. When it stops answering — every call stuck behind one held lock — a banner appears with Restart core, and after a minute the app restarts it on its own. The restart only stops and starts the mail connections; queued messages and stored data are untouched. The watchdog stays out of the way during a profile transfer and during calls.
The locks that caused it
The stalls themselves had a cause in the mail core: a handful of locks were held across network calls and database writes, so one slow relay connection could park every other operation. Six such waits are gone (patches #22 and #25–#28 in our vendored core): metadata and config locks no longer span network, skipped scheduler wake-ups are no longer lost, and the connectivity page answers during an IO restart.
Progress you can see
After a fresh login or restore, the empty chat list now says “Fetching messages…” until the first sync completes, switching to “Updating…” while messages actively arrive. In-chat search shows a thin loading bar while results are being fetched. Profile export, second-device transfer and import got a real progress display — on screen and as an Android notification.
Direct or via relay?
During a call, a small chip now says whether media flows straight to the other device or through a relay. A relay is normal and the call stays end-to-end encrypted either way — the chip is for understanding call quality, not for worrying about it.
Mention chips, regrown
@mentions moved into a soft tinted chip that grows with its glyphs: long names, Й and Д, combining marks and emoji no longer get clipped, and a name that wraps gets a chip per line. The tint is derived to keep WCAG AA contrast in every theme, including with a custom accent color.
Also in this release
- Second-device transfer: one receive at a time, and closing the receive dialog no longer cancels the sender.
- Renaming a contact works again; message info honors the selected profile.