This release rolls up everything from 3.10.1, 3.10.2, and 3.10.3 (the in-between versions were CHANGELOG entries only and were never tagged separately).
3.10.3
Added
#channelautocomplete in the message composer (matches the existing@and:emoji:autocompletes; underscore-aware insertion).
Fixed
- DM picture-in-picture panel hidden behind the chat input action bar (raised z-index).
- Inviting a user to a channel showed a red error toast on success; now a green success toast.
- DM E2E attachments left orphaned on disk after deleting the message.
- Server admins couldn't toggle auto-backup settings from the UI (the
update-server-settingallow-list was missing theauto_backup_*keys). - Mobile: sidebar stayed open after tapping a DM in the list.
- Mobile: modal expand/close buttons drifted out of alignment on small screens.
- Voice: self-talking highlight didn't survive a left-sidebar re-render.
- Voice: reverted the always-on local talk highlight regression from 3.10.2; now an opt-in Debug toggle, default off.
- Settings: Force SDR (sRGB) toggle was visible in the web client; it's desktop-only and now lives in the Debug section.
3.10.2
Added
- Pinned-message indicator on the channel header pin button: shows a small accent-colored dot when the active channel has at least one pinned message. Updates live as messages are pinned/unpinned.
Fixed
- Server settings categories missing for non-admin server managers: users with the
manage_serverpermission were missing every category in Settings → Admin because the nav was looking for a stale element.manage_servernow reveals the full set of server-management categories (branding, members, whitelist, invite, cleanup, backup, limits, tunnel, bots, import, mod mode). - Inconsistent ordering between a message and its attachment when both share the same
created_attimestamp. Message queries now usem.idas a stable secondary sort key. - Desktop crash on launch when a saved server's hostname stopped resolving (also fixed in Haven Desktop 1.4.2).
3.10.1
Added
@everyoneand@herementions: typing them now produces a real highlighted mention that pings every member of the channel (subject tomention_everyone). Both options also appear in the@-autocomplete dropdown when you have permission. Senders without permission have the trigger silently neutralized server-side.#channel-nameautolinks:#general(or any channel name) inside a message becomes a clickable channel link. Names matched case-insensitively against channels you can see.- Duplicate Role button in the role editor: clones a role's level, color, icon, and permissions. Auto-assign and channel-access linkage are intentionally not copied.
Fixed
- Voice chat: occasional one-way audio when joining an existing call. ICE candidates that arrived before the remote SDP description was set were being silently dropped. Candidates are now buffered per-peer and flushed after
setRemoteDescription. - DM picture-in-picture: first-message vs reply indentation mismatch. Every line in the PiP now aligns identically.
- DM picture-in-picture: clicking an emoji in the reaction picker did nothing.
add-reaction/remove-reactionwere resolving the channel from the main pane's socket state. The lookup now uses the message's actual channel. - Threads: web users seeing
X repliesbut no messages, and the reply box discarding sends. Same root cause:get-thread-messagesandsend-thread-messagenow resolve the channel from the parent message instead of stale socket state. - Desktop: server restart kicked users back to Host or Join (also fixed in Haven Desktop 1.4.1, transient retries with exponential back-off).