github knoop7/Ava 0.6.0
⭕️

11 hours ago

Ava 0.6.0 - The Circle Is Complete

ew4ifaew4ifaew4i

From 0.4.8 to 0.6.0, Ava has been working toward one goal: turning an Android device from a capable voice satellite into a complete home terminal built for everyday use.

Version 0.4.8 first brought voice, local calls, the Android launcher, Music Assistant and the Bluetooth gateway together on one device. Version 0.4.9 gathered scattered overlays and controls into the sidebar. Versions 0.5.1 and 0.5.2 extended Ava across Android 5–16 and brought modern GeckoView rendering to legacy hardware, while 0.5.3 through 0.5.5 added local voiceprints and rebuilt the voice architecture.

Versions 0.5.6 through 0.5.8 completed video calling, the Mod platform, offline STT/TTS, DLNA, infrared, BLE ADV, backup and broader device support. Version 0.5.9 then brought the music interface, synced lyrics, volume behavior and playback reliability to a daily-use level.

With 0.6.0, those capabilities no longer feel like separate features. Voice now has a complete loop from listening to response and fallback. Calls finally include the user's own live view. Devices have a loop from discovery and connection to presence and Home Assistant entities. The interface connects the browser, overlays, sidebar and security. Music completes its own final loop: immersive playback, lyrics, progress and control can now collapse without getting in the way of everything else.

The circular cover ring is the clearest symbol of this release, but the circle is larger than music. It represents Ava finally connecting sensing to response, devices to the home, and individual capabilities to everyday use.

From Full-Screen Player to Cover Ring

The new Mini player control lets the full music interface collapse smoothly into a circular cover ring at the edge of the screen instead of disappearing or occupying the whole display.

The ring shows album art, playback progress and play/pause state. The cover rotates slowly while playing, coasts and returns upright after pausing, and crossfades when the track changes. Tap the center to play or pause; tap the rest of the cover to reopen the full player.

The control can be dragged to a convenient position and remembers its placement across portrait and landscape layouts. Track changes, pauses and brief metadata gaps preserve the user's expanded or collapsed state. It only fades away after the playback queue is genuinely empty and a grace period has elapsed.

This also completes the last mile between music and the kiosk browser: collapse the full player into the cover ring to reveal weather, shopping lists, radio selectors or other browser pages while playback and essential controls remain available. Thanks to @lone-baggie for describing this workflow in #110.

Path: Ava Settings -> Interaction -> Media Player -> Mini player control

The music overlay also keeps the display awake during playback, so the screen no longer turns off while viewing lyrics or using media controls.

Lyrics, Progress and Sendspin

Synced lyrics now follow the audio that is actually heard more closely, accounting for Sendspin playout buffering and the user's synchronization offset. Matching adds retries, a fallback query and duration validation to reduce failures and incorrect results caused by network errors, missing artist data or similarly named tracks.

This release fixes lyrics starting midway after a track change, jumping to the first line after pausing, delayed timing adjustments and local progress becoming stuck after an upstream seek. Cover and lyric changes also use softer transitions.

During Music Assistant / Sendspin playback, the progress bar in the Full metadata interface is now directly seekable. Tap any point to jump to that position in the track; the player updates progress and lyrics immediately, then reconciles with the server's confirmed playback position without snapping back or losing lyric alignment.

Known upstream limitation: Ava can send the seek command to Music Assistant / Sendspin, but some upstream versions do not yet return the exact resulting playback position to Ava. In that case, Ava can update its local progress from the user's tap but cannot always confirm the final position with the server. Full reconciliation depends on the upstream protocol interface being completed over time.

Sendspin playback state is now more consistent across pause, resume, track changes and queue clearing, reducing incorrect transport icons, progress jumps and temporary metadata loss. FLAC fragment playback and multi-room synchronization paths receive further reliability improvements.

Streaming TTS Fixed Again

Ava 0.6.0 further improves streaming replies across different Home Assistant and TTS combinations. Some servers announce stream start and end events without sending usable PCM audio. Ava now waits for enough real audio data before allowing the PCM path to take over, so an empty stream can no longer interrupt URL speech that has already started.

An empty upstream stream-end event now closes the URL playback session correctly, while a watchdog prevents the assistant from remaining stuck in Responding when the end event never arrives. Valid PCM streams still use the low-latency path, and standard TTS behavior is unchanged.

Thanks to @alexreddy78 for continued logs and real-world testing in #89.

See Yourself During Video Calls

Video calls now include a local self-view. When the camera is enabled, the other participant remains full-screen while a responsive inset shows your own live framing and camera direction.

The front camera is mirrored only in the local preview, matching familiar calling apps, while the video sent to the other participant keeps its natural orientation. Switching to the rear camera removes the mirror automatically. The camera-flip control remains outside the preview so it does not cover the image or conflict with touch interaction, and the layout adapts across portrait, landscape and unusual DPI configurations.

Calling, answering, remote video, self-view, mute, video control and camera switching now form a more complete visual calling loop in Ava 0.6.0.

Home Passcode

A new Home passcode can protect the main interface after a period of inactivity.

  • Choose a 4- or 6-digit passcode and a custom auto-lock delay.
  • Lock Home immediately from the sidebar.
  • Optionally shuffle the keypad each time it appears.
  • Optional brute-force protection progressively locks input for 1 minute, 5 minutes, 30 minutes and 1 hour after repeated failures.
  • Time spent in Settings does not count as Home inactivity; the timer restarts after returning Home.

Path: Ava Settings -> Device Services -> Home passcode

More Reliable Bluetooth Presence

The Bluetooth gateway now advertises ESPHome 2026.8.1 compatibility, keeping Ava aligned with newer Home Assistant and ESPHome Bluetooth proxy capabilities.

Bluetooth Presence now supports IRKs. For paired devices that rotate their private Bluetooth address, Ava can read and validate the IRK from system bonding data when root or Shizuku access is available, allowing the same device to remain identifiable after its MAC address changes.

Exact MAC matching still takes priority. IRK resolution is only a fallback for address rotation and does not interfere with ESPHome Bluetooth proxy forwarding. Ava continues using the existing MAC-based path when no valid IRK is available.

Why can users not paste an IRK manually, and why are there fewer advanced controls? This is a deliberate product decision. Most users should not need to understand IRKs, rotating addresses, scan filters or Bluetooth protocol details just to use presence detection and the Bluetooth proxy. After a device is paired and root or Shizuku access is available, Ava attempts to read the IRK automatically and only stores it after validating it against a nearby advertisement. The Bluetooth screen therefore exposes the functions and status users actually need, without error-prone keys or advanced settings that are difficult to verify and can reduce proxy stability. The goal is a clear, reliable and ready-to-use Bluetooth gateway for everyone, including people who do not know how the underlying Bluetooth protocol works. https://www.home-assistant.io/integrations/private_ble_device/

Thanks to @tar-gezed for detailed Oppo and Wear OS feedback in #112. IRK can help when a device is still advertising under a rotating address; it cannot bypass the operating system when Doze stops advertising completely.

Settings and Device Support

Device Services, Interaction and Browser settings have been reorganized into clearer subpages. Long descriptions can be expanded when needed, with improved scaling across portrait, landscape and unusual DPI configurations.

Portal Support 1.2.0 adds a read-only physical media-volume diagnostic sensor for Home Assistant automations. Thanks to @lone-baggie for continued Portal volume feedback in #106.

Echo Show Support 1.1.1 fixes release packaging so its DEX implementation can load correctly. Ava 0.6.0 also includes stability fixes for lock-screen animation, overlay bitmap lifetime, voice-call layouts, Bluetooth coordination and translations.

Don't miss a new Ava release

NewReleases is sending notifications on new releases.