Skip to content

v0.1.105-preview

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Jul 20:17
· 56 commits to main since this release

This preview focuses on reliable fresh provisioning, a consolidated Client
Bluetooth HID path, stronger Host/Client runtime handoff, and clearer Studio
feedback throughout setup.

Highlights

Consolidated Bluetooth HID support

  • Updated Client Bluetooth compatibility for current Raspberry Pi OS images
    based on Debian Trixie. Testing after the OS/kernel and BlueZ upgrade exposed
    unreliable advertisement registration, discovery, and Windows pairing in the
    older mixed Bluetooth implementation.
  • Replaced that legacy path with a dedicated BlueZ BLE HID-over-GATT service,
    including explicit adapter setup, pairing-agent ownership, managed
    advertising, and a stable local report handoff from the Client runtime. This
    updates the complete integration rather than treating the observed regression
    as a kernel-only issue.
  • Consolidated Client keyboard and mouse output on the standalone BlueZ BLE HID
    backend and removed the superseded Bluetooth daemon and legacy helper path.
  • BlueZ BLE is now the default Client Bluetooth mode. The radio and helper stay
    dormant while no Bluetooth route uses them, so an enabled Client reports an
    idle state without keeping the Bluetooth runtime active.
  • Improved BLE advertising, Windows pairing, reconnect behavior, and backend
    readiness reporting.
  • Client provisioning now configures the Bluetooth controller consistently for
    the BLE HID path and deploys the required Python, D-Bus, and systemd support.
  • Host Bluetooth pairing now attempts to connect the device and refreshes the
    Host inventory so newly connected controllers can appear under Add Input
    Source without a service restart.
  • Studio now distinguishes Bluetooth disabled, enabled-idle, active, and
    genuinely unavailable states more accurately.

Safer and clearer provisioning

  • Host and Client provisioning now both schedule and monitor the required
    reboot before reporting the device fully online.
  • Reboot progress is split into clear stages: Reboot scheduled, Device offline,
    SSH restored, Service active, and API responding.
  • Added Stop Waiting, which stops Studio monitoring without cancelling or
    damaging the installation already running on the Pi.
  • Preflight now warns before replacing an existing Host installation with a
    Client, or an existing Client installation with a Host.
  • Provisioning actions are locked after installation begins to prevent duplicate
    SSH or bootstrap submissions.
  • Failure results now include the failed stage, last successful stage, target
    address, and a Copy Diagnostics action.
  • After provisioning, Studio refreshes Client and Host discovery, versions,
    device counts, selectors, and About-page inventory automatically.
  • A newly provisioned Client becomes active automatically when no Client is
    selected; otherwise Studio asks whether to switch from the current Client.

Installation and runtime reliability

  • Aligned standalone Host installation with Studio provisioning, including
    consistent service files, runtime packages, udev access, and service-account
    permissions.
  • Added the Host service account to the required input and audio groups so
    Bluetooth controllers and ALSA playback devices work after fresh provisioning.
  • Hardened Client profile handoff and status refresh after route changes and
    service restarts.
  • Replacement Host stream requests now stop omitted speaker or microphone relay
    workers and clear their telemetry, so disabling a relay is reflected
    immediately.
  • Improved Bluetooth route readiness refresh after applying a profile.

Studio and documentation polish

  • Renamed the Devices navigation page to Device Routing to make its
    purpose clearer alongside Client, Host, and Bluetooth device management.
  • Updated setup, Bluetooth, provisioning, troubleshooting, and Audio Relay
    documentation for the current workflows.
  • Added Bluetooth headset Audio Relay guidance: BlueALSA normally uses classic
    A2DP, which adds latency; larger playback buffers can improve stability at the
    cost of additional delay.

Upgrade notes

This release changes Client Bluetooth service layout and provisioning behavior.
Update Studio and its bundled Host/Client payloads together. The supported
Client Bluetooth choices are now Disabled and BlueZ BLE; removed legacy
backends are no longer accepted.

Reapplying the current Host or Client package is recommended for existing Pis so
the updated systemd units, Bluetooth configuration, udev rules, and service
account permissions are installed. Studio provisioning performs and monitors
the required reboot automatically.

Full changelog

Compare v0.1.104-preview...v0.1.105-preview