macOS no longer calls the downloaded app damaged: the app is now signed ad hoc. It is still not notarized by Apple, so on first launch open System Settings → Privacy & Security and click Open Anyway (desktop app guide).
Servers in the Compose setup update with Update now in Settings → Server; the apps follow their server.
Voice
Signing out while a voice room is still connecting no longer joins the room afterwards.
Signing out leaves the voice room on the server right away.
Leaving a room while the app is rejoining it after a dropped connection no longer brings you back or shows "Back in the room".
If the connection drops again while the app rejoins, it keeps trying instead of staying in a dead call.
Voice presence is accepted only for rooms that exist in the group.
Chat
Previews keep _ and * that are not formatting: snake_case no longer turns into snakecase.
The "New messages" divider shows the first time you open a chat with nothing read.
Message times switch to "yesterday" at midnight without reopening the chat.
A chat that was loading older messages during a reconnect loads again instead of staying empty.
The More menu of a message opened from the keyboard appears under its button, and closing a menu returns focus to where it was opened.
The quick switcher (Ctrl+K) updates while it is open.
The microphone is released when a voice message cannot start recording.
The sign-in screen no longer says that registration needs an invite on servers where it is open.
The desktop app stores the saved session with Electron's current encryption API; existing sessions stay signed in.
One command starts a working server: docker run --network host d4enst/tolktak. The image includes LiveKit, keeps its data in /data and needs no configuration to try.
A Docker Compose setup for a permanent server: PostgreSQL, S3 file storage, automatic HTTPS and LiveKit, each replaceable by your own. install.sh asks a few questions and writes the configuration.
Uploaded files can be stored in any S3-compatible bucket.
The server works out LiveKit's address by itself; LIVEKIT_PUBLIC_URL is now optional.
Moving from 0.1: the old deploy/ scripts are gone. The maintenance guide shows how to move a 0.1 server, its database and files included.
Updates
The app follows its server: before it opens, it installs the server's version, and while it is open it offers a restart when the server updates. The Windows installer and the Linux AppImage update without an installer window; macOS and the portable zip offer a download.
The server can update itself. In the Compose setup an administrator installs a new release with Update now in Settings → Server, or the server does it on its own when nobody is in voice (TOLKTAK_UPDATES, manual by default).
Security
Rate limits can no longer be bypassed with a forged X-Forwarded-For header. Update servers behind a reverse proxy.
Sign-in attempts are limited per address and per account; changing the password ends your other sessions; unused sessions end after 90 days.
Removed group members are taken out of voice rooms at once; only moderators add members; calls ring only in your own direct messages.
Limits on request sizes, uploads per user (TOLKTAK_USER_QUOTA_MB), searches, new groups, profile changes and real-time events.
Attachments are deleted with their message, chat or group; file names cannot disguise their extension; links show their real address.
The desktop app accepts commands only from its own window and cannot read files outside its folder.
Release files and images carry signed build provenance (see SECURITY.md).
Fixes
Signing out or an ended session now leaves the voice call.
After a dropped call the app reconnects without flooding the server.
A single message can no longer break a chat for everyone.
Spoilers stay hidden in notifications and previews.
The app keeps trying to sign in when the server is unreachable at start, for example while it updates.
Messages missed during a long disconnect are loaded in full.
Downloading images, audio and video from the chat works.
If the saved microphone is gone, another one is used.
App sounds play on the chosen output device.
Escape closes only the top window.
The "New messages" divider shows while you read older messages.
On macOS the window reopens from the Dock.
Search ignores case for Cyrillic text.
MP3, FLAC, AAC, M4A, WAV and Ogg files play in the chat.
Sharing a small window no longer sends two full-size streams.
Message actions, menus and spoilers work from the keyboard.