Skip to content

Release history

A modern Music Player Daemon based on Rockbox firmware releases

All releases

33 shown

No immediate action
2026.05.28 Breaking risk

Timeout removal + buffering fix

No immediate action
2026.06.27 Breaking risk

Navidrome support, PCM remover, Expo/GPUI fixes

Config change
2026.05.25 New feature
Auth

Subsonic/Navidrome API server

No immediate action
2026.05.17 Bug fix

Paused track resume fix

No immediate action
2026.05.15 New feature

Media server browsing schemes

2026.05.09 Bug fix

Fixed DSP compressor divide‑by‑zero crash, startup hangs caused by O(N²) FTS5 backfill and SQLite migration stalls, and audible silence gap at track start on Linux.

Full changelog

[2026.05.09]

Fixed

  • DSP compressor divide-by-zero crash on x86_64 (SIGFPE in get_att_rls_coeff) — added release > 0 guard in compressor_update() mirroring the existing attack > 0 guard; ARM64 silently returned 0 on integer divide-by-zero while x86_64 faulted; also added function-level guards in get_att_rls_coeff and get_lpf_coeff for zero rc/fs/rc_units parameters, and an early fs <= 0 return in compressor_update for uninitialised output frequency
  • Startup hang on second+ launch — FTS5 backfill WHERE NOT EXISTS (SELECT 1 FROM fts_table f WHERE f.id = t.id) forced an O(N) full scan per row (O(N²) total) because id is UNINDEXED in FTS5; replaced all four backfill INSERTs with an uncorrelated WHERE NOT EXISTS (SELECT 1 FROM fts_table) which SQLite short-circuits at the first row (O(1) for non-empty tables)
  • Library startup blocked indefinitely on repeated runs — SQLx hangs when re-executing CREATE VIRTUAL TABLE IF NOT EXISTS on an existing FTS5 virtual table; fixed by checking sqlite_master before the migration and skipping it entirely if track_fts already exists; same guard added for dedupe_genres (checks UNIQUE constraint on genre table)
  • FTS5 and dedupe_genres migrations ran in slow DELETE journal mode — PRAGMA journal_mode=WAL was set only after all migrations; moved to SqliteConnectOptions::journal_mode(Wal) so WAL is active from the first connection
  • FTS5 index migration moved to a background tokio::spawn task so startup is non-blocking; dedupe_genres (schema DDL) remains synchronous with an O(1) skip guard
  • cpal PCM sink: audible silence gap at the start of every track on Linux — sink_dma_start() previously stored the first chunk in pcm_data/pcm_size and then called pthread_create, leaving the ring empty for the 1–5 ms thread-creation window; fixed by pushing the first chunk synchronously via pcm_cpal_push() before spawning the writer thread so the ring is pre-filled when running=true is set; the writer thread now picks up from chunk 2 onwards; also added !r.running early-exit to the f32 cpal callback (mirrors the existing i16 guard) and reset resampler state (cur_valid = false, phase = 0) in pcm_cpal_start() to prevent interpolation artefacts from the tail of the previous track

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.05.06...2026.05.09

2026.05.05 New feature
Notable features
  • Headless host target using `cpal` PCM sink for any OS audio backend (ALSA, CoreAudio, WASAPI, JACK) — build via `scripts/build-headless.sh`
  • Genres API with gRPC, GraphQL, REST, and CLI endpoints plus bundled SQL deduplication migration
  • Disc/track number support in Expo mobile album view (`TrackList` component renders disc‑section headers)
Full changelog

[2026.05.05]

Added

  • Headless host target and cpal PCM sink (audio_output = "cpal") — runs Rockbox without SDL on any OS audio backend (ALSA, CoreAudio, WASAPI, JACK) via CPAL; build with scripts/build-headless.sh; documented in HEADLESS.md
  • Genres API — gRPC, GraphQL, REST, and CLI endpoints to list genres, fetch tracks by genre, and add genre-based smart playlist rules; genre deduplication SQL migration bundled
  • Disc/track number support in the Expo mobile album view — TrackList component sorts by (disc, track) and renders disc-section headers for multi-disc releases; proto track_number/disc_number fields mapped through to the UI
  • Pull-to-refresh / rescan in the Expo library tab

Changed

  • CI workflows, macOS build scripts, Dockerfile, and install.sh streamlined — significant reduction in duplication and overall build time
  • Android cdylib option now available in the tools/configure interactive menu

Fixed

  • M4A/AAC files decode silently in CODECS_STATIC builds — dead-write elimination in libm4a/demux.c was optimizing away box-parsing reads; replaced with live-return readers (stream_read_uint* + stream_skip)
  • macOS linker: Security.framework explicitly linked in zig/build.zig to resolve missing symbol errors when using macOS Security APIs
  • Expo mobile app re-establishes gRPC subscriptions when the app returns to the foreground (reconnectEpoch bump + reapplyServerUrl())

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.05.03...2026.05.05

2026.05.03 New feature
⚠ Upgrade required
  • Debian and RPM packages now declare XKB/XCB build dependencies: libxkbcommon-dev, libxkbcommon-x11-dev, libxcb1-dev, libxcb-render0-dev, libxcb-shape0-dev, libxcb-xfixes0-dev; update install instructions accordingly
  • GPUI titlebar drag areas now use `window.start_window_move()` on mouse down, fixing window dragging on Linux/X11
Notable features
  • Linux-specific minimize/maximize/close buttons added to GPUI titlebar (macOS/Windows retain native traffic‑light controls)
  • Mintlify documentation site under `mintlify/` with Linden theme, regenerated OpenAPI spec and CardGroup architecture diagrams
Full changelog

[2026.05.03]

Added

  • Mintlify documentation site under mintlify/ with the Linden theme; OpenAPI spec regenerated and ASCII architecture diagrams replaced with CardGroup components
  • Linux-specific window controls (minimize / maximize / close) in the GPUI titlebar — macOS/Windows continue to use native traffic-light controls

Changed

  • GPUI titlebar drag areas now call window.start_window_move() from an on_mouse_down handler instead of relying on WindowControlArea::Drag, fixing window dragging on Linux/X11
  • Debian and RPM packages now declare XKB/XCB build dependencies (libxkbcommon-dev, libxkbcommon-x11-dev, libxcb1-dev, libxcb-render0-dev, libxcb-shape0-dev, libxcb-xfixes0-dev); README updated with the matching install instructions
  • Debian package version bumped to 2026.05.03

Fixed

  • GPUI app no longer fails to build on Linux: souvlaki is now a non-Linux-only dependency and NowPlayingManager ships a no-op Linux stub, since the OS media-control APIs souvlaki targets are not available there

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.05.02...2026.05.03

2026.05.02 New feature
Notable features
  • New SDKs for Python, Ruby, Elixir, Gleam, and Clojure with comprehensive examples
  • TypeScript SDK expanded to include 15 runnable examples, Bluetooth API (`api/bluetooth.ts`), `getVolume`/`VolumeInfo` endpoints on `api/sound.ts`, and type additions `browse.displayName` & `album.copyrightMessage`
Full changelog

[2026.05.02]

Added

  • New SDKs for controlling rockboxd from Python, Ruby, Elixir, Gleam, and Clojure (sdk/python/, sdk/ruby/, sdk/elixir/, sdk/gleam/, sdk/clojure/) — each ships with examples covering playback, queue, library search, saved/smart playlists, volume/EQ, browse, devices, Bluetooth, and plugins
  • TypeScript SDK gains 15 runnable examples (sdk/typescript/examples/) plus a Bluetooth API (api/bluetooth.ts) and a getVolume / VolumeInfo endpoint on api/sound.ts
  • TS SDK types extended with browse.displayName and album.copyrightMessage

Fixed

  • HTTP/remote tracks now hydrate Mp3Entry metadata (title, artist, album, duration, etc.) from the DB Track record in the playlist handlers when Rockbox cannot read tags locally
  • GPUI Library page: text truncation and unexpected overflow on likes and track rows resolved by adding min_w_0 / flex_shrink_0 to the flex containers

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.05.01...2026.05.02

2026.05.01 Breaking risk
⚠ Upgrade required
  • Raise `RLIMIT_NOFILE` to 4096 on Unix at startup to support large music libraries.
  • Shared Tokio runtimes for controls and MPD servers now use `OnceLock` to avoid nested‑runtime panics.
Breaking changes
  • Migrated HTTP server (`crates/server`) from custom layer to Actix‑web; handler signatures changed to use `web::Data`, `web::Path`, `web::Query` and return `actix_web::Result`.
Notable features
  • Bluetooth button in GPUI mini-player opens device picker and fetches paired devices when Bluetooth is available.
  • Cover URLs now follow active server via `get_covers_base()` instead of hardcoded base URL.
Full changelog

[2026.05.01]

Added

  • Bluetooth button in the GPUI mini-player — shown when Bluetooth is available; opens the device picker and fetches paired devices on toggle
  • Cover URLs in GPUI now follow the active server via get_covers_base() instead of the hardcoded http://localhost:6062/covers/ base

Changed

  • HTTP server (crates/server) migrated from a custom request/response layer to Actix-web — handlers now accept web::Data, web::Path, and web::Query and return actix_web::Result<HttpResponse>; blocking C FFI work is offloaded to web::block
  • Tokio runtimes for the controls and MPD servers are now shared via OnceLock instead of being created per-thread, reducing overhead and avoiding nested-runtime panics
  • RLIMIT_NOFILE is raised to 4 096 at startup on Unix to accommodate large music libraries

Fixed

  • Audio stop and pause are now non-blocking — they use audio_queue_post so they can safely be called from any OS thread; audio_hard_stop posts Q_AUDIO_STOP with data=2 and the audio thread frees audiobuf_handle itself, preventing cross-thread frees
  • Blocking C FFI calls in playlist handlers run on web::block threads to avoid starving Actix worker threads and prevent nested tokio/reqwest blocking contexts
  • Live metadata lookups are skipped for HTTP tracks; Rockbox's own UPnP renderers are excluded from the UPnP device list
  • Bluetooth availability check uses fetchGlobalStatus() (gRPC GetGlobalStatus) instead of getDevices() to avoid spurious UNIMPLEMENTED errors on probe
  • Bluetooth availability is now polled in a background task and updated via std::sync::mpsc to avoid cross-runtime waker issues when bridging Tokio → GPUI
  • observe_global registrations in GPUI now call .detach() instead of silently dropping the subscription handle
  • RFC3339 datetime migration — a SQL migration normalises NULL/blank and YYYY-MM-DD HH:MM:SS timestamps in the library database to RFC3339 so SQLx DateTime<Utc> decoding no longer fails
  • Favourites queries now use INNER JOIN and filter out empty-string IDs, excluding bogus entries from results
  • mDNS scanning now prefers IPv4 addresses (192.168 → 10 → others) and selects the best non-loopback/link-local address so multiple records for the same host coalesce correctly
  • println!/eprintln! diagnostics in crates/controls and crates/mpd replaced with tracing::error!
  • macOS app listens for server-change notifications and restarts streaming, re-fetches settings, device state, and Bluetooth state on server switch

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.31...2026.05.01

2026.04.31 Bug fix

Fixed mDNS device ID persistence across daemon restarts.

Full changelog

[2026.04.31]

Fixed

  • mDNS device ID is now persisted across restarts — a 64-bit hex ID is generated once and cached in ~/.config/rockbox.org/device-id, so the registered mDNS service name remains stable between daemon restarts instead of changing on every launch

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.30...2026.04.31

2026.04.30 New feature
Notable features
  • Bluetooth device support in GPUI and web UIs for pairing/connecting/disconnecting
  • mDNS-based server discovery with runtime switching via Server Picker UI without restart
  • UPnP album art caching through `album_art_uri` and concurrent metadata persistence
Full changelog

[2026.04.30]

Added

  • Bluetooth device support in the GPUI and web UIs — list paired/discovered devices, connect and disconnect directly from the device picker
  • mDNS-based server discovery and runtime server switching — scan_mdns() in the daemon registers itself via mDNS; the GPUI app and macOS app gain a Server Picker UI that enumerates nearby rockboxd instances and switches without restart; a notification triggers one-shot syncs to re-run on server change
  • UPnP album art saved for remote tracks — album_art_uri is returned from UPnP directory listings; save_audio_metadata downloads and caches the cover when no embedded art is present; remote metadata is persisted concurrently (semaphore-limited) without blocking C/FFI
  • copyright_message field on the Album GraphQL type, displayed in AlbumDetails alongside a formatted release date
  • Typesense bundled in the Docker image — the Dockerfile now pulls the typesense image and copies typesense-server into the final image

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.29...2026.04.30

2026.04.29-2 Breaking risk
Breaking changes
  • Renamed `BluetoothService` gRPC method `Connect` to `ConnectDevice`
Notable features
  • Added rockbox CLI commands for Bluetooth speaker management (`bluetooth scan`, `bluetooth devices`, `bluetooth connect <id>`, `bluetooth disconnect <id>`)
  • Bluetooth GraphQL resolvers now call `rockbox-bluetooth` directly, removing an extra round‑trip on Linux
Full changelog

[2026.04.29-2]

Added

  • Bluetooth speaker management commands in the rockbox CLI (bluetooth scan, bluetooth devices, bluetooth connect <address>, bluetooth disconnect <address>) — Linux only, talks to a running rockboxd via gRPC
  • Bluetooth GraphQL resolvers (bluetoothDevices query, bluetoothScan / bluetoothConnect / bluetoothDisconnect mutations) now call rockbox-bluetooth directly instead of going through the HTTP server — eliminates an extra round-trip on Linux

Fixed

  • BluetoothService gRPC RPC renamed from Connect to ConnectDevice to avoid a name collision with tonic's auto-generated transport connect constructor, which caused a compile error (duplicate definitions with name connect)

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.29-1...2026.04.29-2

2026.04.29-1 Bug fix

Fixed macOS app file navigation and device picker display issues.

Full changelog

Fixed

  • macOS app Files view: navigating from the root into Music no longer yields an empty list — .task ID now encodes both mode and path so a mode change with a nil path correctly triggers a reload
  • macOS app device picker: now lists all output devices (including the current one, marked with a checkmark) instead of only non-current devices; added snapcast icon/colour entry
  • macOS app device picker: no longer shows a loading spinner on open when devices were already preloaded at startup — refresh() only sets isLoading when the device list is empty

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.29...2026.04.29-1

2026.04.29 New feature
Notable features
  • UPnP/DLNA device browsing integration in Files view with queue and play capabilities
Full changelog

[2026.04.29]

Added

  • UPnP device browsing in the Files view — queue and play tracks directly from any UPnP/DLNA media server on the local network

Fixed

  • HTTP stream (netstream) no longer permanently breaks after a failed seek: seek_to() now only replaces the active response on success, so a failed Range request leaves the stream readable at the current position
  • Small forward seeks (≤ 128 KB) in HTTP streams are now satisfied by skipping bytes in the existing response body instead of issuing a new Range request, avoiding unnecessary round-trips during codec metadata parsing
  • Buffering: TYPE_ID3 handles for remote tracks that fail to open now send BUFFER_EVENT_FINISHED with an empty mp3entry instead of silently never posting Q_AUDIO_FINISH_LOAD_TRACK, which caused the track-loading chain to stall on playlist restore with many queued UPnP tracks
  • Web UI Files view: Music and UPnP Devices row icons no longer disappear on hover — CSS selector changed from descendant ( ) to direct-child (>) combinator so the .no-play guard is respected

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.28...2026.04.29

2026.04.28-1 New feature
Notable features
  • Real-time PCM loudness normalizer (`normalize_volume = true` in `settings.toml`) with RMS-based AGC applied across all PCM sinks
  • `GET /player/volume` REST endpoint returning `{ volume, min, max }`
  • `volume` GraphQL query and `useGetVolumeQuery` hook providing live current volume with range
Full changelog

[2026.04.28-1]

Added

  • Real-time PCM loudness normalizer (normalize_volume = true in settings.toml) — RMS-based AGC with asymmetric attack/release, similar to Spotify's "Normalize Volume"; applied across all PCM sinks (SDL, FIFO, AirPlay, Squeezelite, UPnP, Chromecast, Snapcast TCP)
  • GET /player/volume REST endpoint returning { volume, min, max }
  • volume GraphQL query returning live current volume with min/max range
  • useGetVolumeQuery GraphQL hook in the web UI
  • get_current_volume() gRPC client helper in the GPUI app

Fixed

  • Volume slider in GPUI mini-player now responds to mouse clicks (replaced plain div with SeekBar component)
  • Volume slider in web UI now uses correct 0–100 range with explicit min/max on the MUI Slider
  • globalSettings.volume in GraphQL now returns the live current volume via rb::sound::current(0) instead of a hardcoded 0
  • VOLUME_MIN_DB constant in GPUI corrected from -74 to -80 (SDL target range)
  • Volume in GPUI loads the live value at startup via SoundCurrent gRPC instead of the stale saved setting
  • adjust_volume now has audible effect on all non-SDL PCM sinks (FIFO, AirPlay, Squeezelite, UPnP, Chromecast, Snapcast TCP) — SW volume scaling (pcm_copy_buffer) was not being applied in any of these sinks

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.28...2026.04.28-1

2026.04.28 New feature
Notable features
  • Add Snapcast TCP PCM sink with stream metadata
Full changelog

What's Changed

  • Add Snapcast TCP PCM sink and stream metadata by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/159

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.27...2026.04.28

2026.04.27-2 Maintenance

Routine maintenance release for A modern Music Player Daemon based on Rockbox firmware.

Changelog

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.27-1...2026.04.27-2

2026.04.27-1 Maintenance

Routine maintenance release for A modern Music Player Daemon based on Rockbox firmware.

Changelog

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.27...2026.04.27-1

2026.04.27 New feature
Notable features
  • UPnP/DLNA media server and sink
  • Chromecast WAV header accuracy improvements, art caching, Content-Length enforcement
  • Device picker UI with Squeezelite client support
Full changelog

What's Changed

  • Add UPnP/DLNA media server and sink by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/152
  • Enhance Chromecast WAV header accuracy and art caching by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/153
  • Enforce Content-Length for Chromecast WAV and add documentation by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/154
  • Add Chromecast section to README by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/155
  • Add device picker UI and Squeezelite client support by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/156

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.25...2026.04.27

2026.04.25 New feature
Notable features
  • Saved playlists support
  • Smart playlists support
Full changelog

What's Changed

  • Add saved and smart playlists support by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/148

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.24...2026.04.25

2026.04.24 Maintenance

Routine maintenance release for A modern Music Player Daemon based on Rockbox firmware.

Changelog

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.23...2026.04.24

2026.04.23 New feature
Notable features
  • Multi-room AirPlay support with receiver management
  • GPUI desktop GUI crate
Full changelog

What's Changed

  • Add multi-room AirPlay support with receiver management by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/145
  • Add GPUI desktop GUI crate by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/146

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.22...2026.04.23

2026.04.22 New feature
Notable features
  • Tracing support and FIFO PCM sink functionality added
  • AirPlay output sink with rockbox-airplay crate added
  • Squeezelite PCM sink with Slim protocol support added
Full changelog

What's Changed

  • Add tracing support and FIFO PCM sink functionality by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/141
  • Add AirPlay output sink and rockbox-airplay crate by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/142
  • Add Squeezelite PCM sink with Slim protocol support by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/143

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.20...2026.04.22

2026.04.20 Maintenance

Routine maintenance release for A modern Music Player Daemon based on Rockbox firmware.

Changelog

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.04.19...2026.04.20

2026.04.19 New feature
Notable features
  • Added HTTP(S) network stream playback to Rockbox Desktop.
  • Integrated Typesense server and updated Zig build configuration (Zig 0.16).
Full changelog

What's Changed

  • Add HTTP(S) network stream playback to Rockbox Desktop by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/135
  • Integrate Typesense server and update Zig build configuration (Zig 0.16) by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/136

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2025.12.27...2026.04.19

2025.12.27 Maintenance

Routine maintenance release for A modern Music Player Daemon based on Rockbox firmware.

Changelog

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2025.12.25...2025.12.27

2025.12.25 New feature
Notable features
  • Native macOS application
  • System media controls integration (play/pause via keyboard)
  • Optimized performance for macOS
Full changelog

What's New

  • Native macOS application
  • System media controls integration (play/pause with keyboard keys)
  • Optimized performance for macOS

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2025.12.24...2025.12.25

2025.12.24 Maintenance

Routine maintenance release for A modern Music Player Daemon based on Rockbox firmware.

Changelog

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2025.12.23...2025.12.24

2025.12.23 New feature
Notable features
  • Support for media controls on macOS
  • New SwiftUI application for macOS
Full changelog

What's Changed

  • feat: add support for media controls on macos by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/131
  • feat: Add SwiftUI app for macos by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/132

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2025.12.06...2025.12.23

2025.12.06 Maintenance

Routine maintenance release for A modern Music Player Daemon based on Rockbox firmware.

Changelog

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2025.07.19...2025.12.06

2025.07.19 Breaking risk
Breaking changes
  • Removed `volume` from `UserSettings` bindings
Full changelog

What's Changed

  • chore: upgrade to zig 0.14 by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/124
  • build.zig: add itoa_buf.c to build.zig by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/125
  • fix(sys): update SystemStatus bindings, add volume by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/126
  • fix(sys): update UserSettings bindings, remove volume by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/127

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2025.07.17...2025.07.19

2025.07.17 Bug fix
Notable features
  • [rocksky] control rockbox remotely with rocksky web ui (websocket)
Full changelog

What's Changed

  • [rocksky] control rockbox remotely with rocksky web ui (websocket) by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/120
  • fix(webui): fix incorrect album art url by @tsirysndr in https://github.com/tsirysndr/rockbox-zig/pull/122

Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2025.02.16...2025.07.17

Beta — feedback welcome: [email protected]