Changelog
What's new in each release.
v0.7.0
Recommended0.7.0
Fixed:
- Call recordings made with version 0.6.8 were not saved. This is fixed, and recordings are now saved reliably.
- Bringing the window back from the tray sometimes showed nothing at all.
- Declining a call could still pull the main window to the front. Only answering a call brings the window up now.
- Answering a call no longer shrinks a maximised window back to its smaller size.
- In the call history, the time of a call and its length were cut off at the edge of the panel when the caller's name was long.
- A number switched off on a line could not be switched back on. Numbers can now be switched off and on freely; the line's default number and its last remaining number are still protected.
- On the Phone layout, the call controls no longer run past the bottom of a small window. The hang-up button stays in view at every window size.
- Searching for a number written in international form, with a leading plus, returned nothing. It now matches the same numbers as the local form.
- The number selector beneath the keypad had its text pressed against the edge of its box.
New:
- The call history now marks calls that have a recording. When a contact has more than one, the number of recordings is shown.
- Save a copy of a recording anywhere you choose.
- Search your contacts and call history when transferring a call. Type part of a number or part of a name, and matches from both your saved contacts and your recent calls are offered. The same search is available when adding a second call.
Improved:
- Calls waiting behind the one you are on now appear in the left-hand panel during a call, instead of below the call controls.
- Holding the backspace key on the keypad clears the whole number at once.
- The Busy and Do Not Disturb notice about waiting callers has been replaced by the list of waiting callers itself, in the left-hand panel.
v0.6.8
Recommended0.6.8
Important
- An expired licence now stops the client registering and taking calls. Previously it kept working, and a licence that had lapsed, or one whose device no longer matched, was only reflected in the licence screen.
Fixed
- Connecting a display or dock over USB-C no longer loses your licence and asks you to activate again.
Fixed
- Calls waiting behind the one you are on are fully visible again, both in the incoming-call window and during a call.
- The presence menu on the Phone layout opened partly off the side of the window, so its options could not be read.
- The update notice on the Phone layout is now labelled rather than a bare dot, and opening it works from any tab.
- If your saved password cannot be read after a disk problem, or a half-finished upgrade, the client now says so and asks you to enter it again.
Security
- The client no longer writes anything derived from your SIP password to the system log.
v0.6.0
Recommended0.6.0
New
- Multiple phone numbers on one SIP account. Manage each number as a separate line in Settings, with independent registration for incoming calls and a choice of number for outgoing calls. Call logs show which number handled each call. Supports iWay-style accounts with separate Login and Authentication ID fields, automatically labeled for your provider.
- Two-call handling was rebuilt. Swap between active and parked calls, merge them into a conference, drop one participant, or end one call and resume the other.
- Phone layout, a handset-sized, single-column window with bottom navigation. Press Ctrl+Shift+D to switch between Phone and Desktop layouts.
Improved
- Linux audio now connects directly to PipeWire and PulseAudio, bypassing ALSA compatibility. This fixes silent first calls, dropped first words, and silent playback on some machines. The microphone indicator now appears only during calls.
- Windows audio moved to WASAPI. It follows the Windows "Default Communications Device", so plugging in a headset mid-session now moves the call to it.
- The call now lives in the main window, so your history and contacts stay visible beside it. An incoming call still raises its own small window over whatever you are doing.
- Call quality is measured over a window rather than instant by instant, and warns per direction.
- The whole interface has been redesigned. One colour system, a reworked icon set, and an enhanced dark mode.
Fixed
- One-way audio with PBXs that advertise a private media address. The client now rewrites it to the address the signalling actually came from.
- No microphone in call on machines whose sound card exposes a digital (S/PDIF) profile. Capture devices are now matched by description and digital passthrough inputs are excluded, since they only ever record silence.
- A failed call caused by a missing microphone now says so, and names the device, instead of reporting a generic call failure.
- Call forwarding and codec selection were not saved. Both now persist, and the codec list offers what this build actually supports.
- Editing an account no longer clears its provider credentials.
- One bad number on a line no longer prevents the rest of the line from registering. Registration retries are capped instead of running indefinitely.
- Call recordings are written with the .wav extension in the right place, and a call produces one recording rather than several.
- The app recovers from a stale device signing key instead of dead-ending on the licence screen.
- Calls placed by the PBX calling you back are now adopted as a normal call instead of being left behind as an invisible leg.
- Using Reconnect during a call no longer drops the call. The registration is rebuilt once the call ends.
- A second recording could be started on a call that was already being recorded, and some controls could be operated when they should not have been.
Changed
- The Compact layout has been removed. Its tighter spacing is now part of the Phone layout, which is the single alternative to the desktop one.
Security
- The single-instance lock and the files the AppImage unpacks now live in your own runtime directory rather than shared /tmp, where another user on the same machine could reach them.
v0.4.6
Recommended0.4.6
- Fixed: can't place outgoing calls on UDP-only SIP servers.
- Fixed: app freeze when hanging up with a USB headset. The audio device is now kept open between calls and released only on exit, instead of being torn down on every hangup.
- Improved: IPv4 media on dual-stack networks. Prevents IPv4-only PBXes rejecting calls with "488 Not Acceptable Here."
- Changed: ICE disabled by default. It added no benefit with supported PBXes and could bloat or fail call setup.
- Added: --sip-debug runtime flag for full SIP/SDP logging without a rebuild.
v0.4.5
Recommended0.4.5
Audio
- Native PipeWire backend. Crystal-clear audio on Ubuntu, Mint, Fedora, Debian, and Arch. No more "robot voice" caused by PulseAudio shim mismatches. Headset hot-swap is instant.
- Conference bridge fixed. When you merge two calls, both parties can now actually hear each other.
- DTMF works in conference. Keypad tones reach every connected leg.
Calls
- Blind transfer is now actually blind. The call hands off the moment the PBX accepts it instead of waiting for the destination to answer.
- Add Call surfaces real errors. If a second call can't be placed, you get a clear in-call message and the original call is restored automatically.
Windows
- Pure Wayland, native window decorations. Dropped the custom title bars in favor of the compositor's own. Drag, resize, minimize, maximize, and close behave like every other native app.
- Call window sizes itself to its content. No more dead bottom strip, no clipping, snaps cleanly between active / incoming / summary states.
- KDE / Hyprland / sway get true compositor-side always-on-top via wlr-layer-shell. Gnome is not supported due to Gnome limitation.
Visual refresh
- Cleaner left-panel call history: bigger names, lighter timestamps, a single divider per row.
- Containerless dial pad and number input.
- New border + 3-tier surface elevation so the windows separate cleanly from any background.
- Section headers with proper breathing room.
v0.3.1
Critical0.3.1
Audio quality
- Much clearer mic pickup. Quieter voices no longer get muted by the noise gate, and the automatic volume level is stronger without clipping on loud syllables.
- Fixed "robot voice" on Debian and Ubuntu. On some Linux distributions, audio was being resampled twice in a row, causing audible aliasing, most noticeable on Opus calls. The whole audio pipeline now runs at a single native rate end-to-end, so you hear the other person clearly.
- Automatic adjustment on older Linux audio systems. The client now detects older PipeWire versions at startup and starts with larger audio buffers on them. If stuttering still occurs, it automatically enlarges the buffer further rather than waiting for a user to report it.
Call window
- Ended-call summary now shows reliably. The brief recap after a call (name, duration, "Rejected" / "Missed" / "Call Ended") previously showed blank or disappeared early in some cases. It now always plays cleanly.
- Tap the summary to dismiss it. Want to make another call immediately? Tap anywhere on the summary and it clears instantly instead of waiting for the animation.
- No more window resize flicker on close. The window no longer grows or flashes on its last frame before closing.
- Window stays on the right screen. If you unplug a monitor or change resolution, the call window no longer ends up off-screen, it validates its position on every change and re-centres on the current display if needed.
- Window can't be cropped by the compositor. On some Linux desktops the window could be squeezed below its intended size, cutting off content. That's now prevented.
Settings
- "Call window always on top" now tells you when it can't work. On GNOME (Wayland), this feature cannot be provided by any Linux desktop app, the desktop itself doesn't support it. Instead of silently doing nothing, the setting is now greyed out with a short explanation and a
pointer to the GNOME extension that adds the capability. Other environments (KDE, X11, Windows) are unchanged.
Under the hood
- Rewrote the call-window lifecycle for reliability. The logic that decides when the window appears, what it shows, and when it closes used to be spread across three separate files; it's now centralized, which eliminated a class of rare display glitches and makes future changes to the call window safer.
- Added diagnostic logging. Call-window state transitions can now be traced with a single env-var flag, making future bug reports faster to diagnose.
v0.3.0
Recommended0.3.0
Microphone Reliability (Linux)
- Fixed a long-standing issue where USB microphones would stop working after idle time. The microphone would appear connected but produce no sound until you unplugged and replugged the device, or fiddled with the system volume. This was caused by a known Linux audio subsystem bug. Meow now automatically installs a one-time system fix on first launch that prevents it from happening at all.
- Fixed an issue where the app would sometimes fail to pick up USB headphones until the microphone volume was manually adjusted.
- Microphone gain is now much louder and more responsive, with improved automatic noise suppression. The other party will hear you clearly without you having to raise your voice.
Audio Quality
- Fixed audio stuttering and brief dropouts that some users experienced during calls, even on stable networks. The audio buffers have been retuned for better compatibility with modern Linux audio systems.
- Fixed false "Connection unstable" warnings that could appear during calls when the network was actually fine.
Audio Device Selection
- The app now correctly maintains your chosen speaker and microphone regardless of changes to your system's audio output. Previously, changing your system output would cause the app to lose its device selection.
- Fixed an issue where the microphone would not be used until the headset was unplugged and reconnected.
Call Window
- Fixed a focus-stealing issue on multi-monitor setups where the call window would grab back focus every time you clicked on another window. The call window now stays visually on top without hijacking your keyboard or interrupting your work.
- Fixed an issue where the main app window couldn't be closed while a call window was open.
- Fixed layout issues where caller info or the Accept/Decline buttons could be cut off, especially when a second call came in during an active call.
- Fixed a rare display glitch where content could appear clipped during window state changes.
- Redesigned the incoming call view for better clarity.
Caller Display
- Fixed a display issue where some PBX systems would show the caller's name and phone number mashed together without a space (e.g., "John Smith0521234567"). The number is now properly separated.
Notifications
- Fixed a bug where desktop notifications for incoming calls would still appear even after you disabled them in Settings.
Update System
- Fixed auto-update on Windows. the installer now runs correctly after download.
- Fixed auto-update on RPM-based Linux distributions (Fedora, openSUSE, RHEL) where updates could fail silently.
- The "Dismiss" button on the update banner now works correctly, hiding the notification for 24 hours.
Wayland Compatibility
- Fixed a crash on certain Linux distributions (e.g. openSUSE) when running under Wayland.
##Branding & Consistency
- Cleaned up inconsistent spelling of "Meow" throughout the app. Existing user data is automatically migrated on first launch.
Downloads & Installation
- Linux packages are now named consistently in lowercase: meow.deb, meow.rpm, meow.AppImage.
- Windows installer is now meow-setup.exe.
- Updated installation instructions on the download page.
v0.2.9
Recommended0.2.9
Contact Name Resolution
- Fixed incoming call contact lookup being overwritten by PBX caller ID. The call manager now does a local contact lookup before accepting the SIP-provided name, preferring saved contacts over PBX data.
- Added contact name enrichment for outgoing calls. when dialing a saved contact, their name shows immediately instead of staying blank.
Call Window
- Fixed runtime toggle. Hide/show cycle forces compositor to re-map the surface with updated flags.
Popup Call Window Setting
- Wired up existing popupCallView setting that was defined but never used.
- When disabled: call window starts minimized, showNormal() calls are suppressed.
- Desktop notifications become mandatory when popup is disabled (only way to answer calls).
- Hidden on Windows where no notification system exists.
- Added toggle in Settings > Appearance with dynamic description.
Zoom/Scaling Overhaul
- All hardcoded pixel values across the entire QML codebase converted to Theme.dp() for proper zoom scaling.
Call Window Performance (Windows)
- Pre-load call window on Windows to eliminate the 3-5 second delay when placing a call. Linux behavior is unchanged.
v0.2.8
RecommendedNew features!
- Removed tooltip from the silence button in the call window
- Added option to keep or remove the call window always on top (Settings > Appearance)
- Added option to enable or disable desktop notifications for incoming calls (Settings > Appearance)
- App now automatically restarts after installing an update
- Fixed rendering issues causing lag and stuttering on Wayland (GNOME) with bundled Qt
- Backup format bumped to v2. Now includes all encrypted and the license.
- Fixed Add to contact icon not showing for some numbers
v0.2.7
RecommendedIncoming Call View
Incoming Call View
- Accept, Decline, and Silence buttons are now uniform circular icons in a single row
- Caller name, number, and status text centered
- Green dot replaced with pulsing mint-colored "Incoming call" text
- New bell-off icon for the Silence button