github crmne/zapfast v0.15.0
ZapFast 0.15.0: Easier chats, clearer controls

5 hours ago

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

The full emoji reaction picker beside a synthetic conversation

Rosé Pine with chat filters and voice-message speed controls

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.

Settings following a synthetic Omarchy 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

Don't miss a new zapfast release

NewReleases is sending notifications on new releases.