0.15.0 makes everyday conversations easier to navigate, with chat filters, a full emoji reaction picker, and faster voice-message playback. It also brings clearer controls, safer updates, and fixes for chat deletion, group names, and attachment handling.
New
- Find the conversations you want. Filter the chat list by unread messages, private chats, or groups, with unread counts beside the filters. By @rafaelsantana6 and @crmne. (#71)
- React with any emoji. Open the full picker from the reaction menu, search for an emoji, and keep frequently used reactions close at hand. By @shinycake and @crmne. (#37)
- Listen to voice messages at your pace. Switch between 1x, 1.5x, and 2x from the player. By @gustavobragac. (#41)
- Reply with a double-click. Double-click a bubble's empty space to reply; double-clicking message text still selects a word. By @rafaelsantana6 and @crmne. (#70)
- Choose a Rosé Pine palette. Rosé Pine, Moon, and Dawn join the theme choices, alongside automatic Omarchy theme following. By @ThatOneCalculator. (#74)
- Navigate with clearer keyboard focus and accessibility labels. Buttons, fields, switches, and messages expose their names and state to accessibility tools. Tab navigation highlights the focused control. By @tobymarks and @crmne. (#106, #87)
- Build and install with Nix. A flake provides development and package builds for both Linux architectures. By @0xsharkboy; thanks @NnannaOmoke for the request. (#108, #111, #34)
Reactions, filters, and voice playback
Fixed
- Arabic replies keep their words in the right order. Ligature-shaped text no longer bypasses the word-order correction in messages, quoted replies, or the composer preview. By @crmne; thanks @MaXShadeR for the exact example. (#126)
- Deleting a chat on your phone removes it here too. Clear-chat changes also sync, delayed history does not restore deleted messages, and messages newer than the deletion are preserved. A chat-menu action lets you delete older stale chats. By @tobymarks and @crmne; reported by @tobymarks and verified in live testing by @crmne. (#97, #61)
- Locked chats stay private across sync and restarts. Phone lock changes hide conversations from the ordinary list, search, and notifications. A local code opens the locked folder, which is currently read-only. By @FelipeMayerDev and @crmne. (#55)
- Group names survive incomplete metadata. Empty responses no longer erase known titles, and unresolved names retry with backoff. Quoted sender labels also refresh when a contact name becomes known. By @fabiomotta0311 and @crmne; thanks @sdbruder for reporting missing group names. (#114, #81)
- Attachments fail clearly instead of spinning indefinitely. Downloads enforce a 64 MiB limit, use verified staging files, and stop after two minutes with an inline retry error. The Download action is disabled while a request is active. By @Crisiszzz07 and @crmne. (#85)
- Pasting a browser image no longer adds its source URL. By @crmne; thanks @akitaonrails for the report. (#84)
- Errors and controls are easier to understand. Failed sends say “Not sent”; actionable errors stay until dismissed; toast text and buttons align; incomplete phone-number actions are disabled. Delivery timestamps are informational, with a separate Copy message ID action. Switches show their state by shape as well as colour, and built-in themes have stronger text contrast. By @tobymarks and @crmne. (#99, #100, #101, #102, #104, #105)
- The desktop does less work while idle. Fixes reduce unnecessary redraws and Wayland layout failures. Animated media stays on its first frame until hovered in a focused window. By @ucmz851, @MrVoicer, and @crmne; thanks @SeanPedersen for the idle-CPU report. (#33, #29, #20)
- Archived chats stay quiet, and windows fit screen zones. Archived conversations no longer trigger desktop notifications; the window can snap and resize into smaller spaces. By @fabiomotta0311. (#117, #122)
- Pairing and text display are more reliable. WhatsApp Business pairing uses the updated protocol library; Brazilian phone numbers format correctly; macOS uses the bundled colour emoji font. By @leandroruel, @tobymarks, and @crmne. (#112, #69)
- Updates require a trusted signature. Release checksums are authenticated before an update is accepted, the TLS dependency is updated, and pairing credentials are kept out of shipped logs. By @Crisiszzz07 and @crmne; thanks @enrell and @princesaini for security reports. (#44, #80, #103)
Matching the desktop
Omarchy theme following remains available through Settings. This preview uses a synthetic Catppuccin desktop palette.
All screenshots use offline demo conversations, not personal chats.
Known limitations
Older attachments can remain unavailable even after retrying or asking the phone to upload them again. A retry is not a guarantee of recovery. Polls show vote totals and your own selection, not voter names or avatars. Accessibility labels are tested automatically, but screen-reader behaviour still needs broader platform testing. The signature-enforcing app must itself be installed through a trusted source; older clients gain this protection only after upgrading.
Thanks
Thanks to @rafaelsantana6, @shinycake, @gustavobragac, @ThatOneCalculator, @tobymarks, @0xsharkboy, @FelipeMayerDev, @fabiomotta0311, @Crisiszzz07, @ucmz851, @MrVoicer, and @leandroruel for contributing, and to @NnannaOmoke, @sdbruder, @akitaonrails, @SeanPedersen, @enrell, @princesaini, and everyone who reported problems and helped test this release.
Full changelog: v0.14.0...v0.15.0


