This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+14 more
Summary
AI summaryHTTP streaming timeout removed and pre-buffering interleaving fixed for smoother playback.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Adds background prefetch thread per HTTP stream with 2 MB buffer for sub‑µs reads Adds background prefetch thread per HTTP stream with 2 MB buffer for sub‑µs reads Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Adds `coverArtUrlFromStreamUrl()` to reconstruct Navidrome cover‑art URLs, showing art in Expo miniplayer, full‑screen player, and queue for ND HTTP streams Adds `coverArtUrlFromStreamUrl()` to reconstruct Navidrome cover‑art URLs, showing art in Expo miniplayer, full‑screen player, and queue for ND HTTP streams Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Bugfix | Medium |
Removes reqwest total-request timeout; retains 15 s connect timeout, preventing mid‑stream kills for large files Removes reqwest total-request timeout; retains 15 s connect timeout, preventing mid‑stream kills for large files Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Bugfix | Medium |
Reverts `read_as_file()` to a retry‑loop that fills the full requested buffer Reverts `read_as_file()` to a retry‑loop that fills the full requested buffer Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Bugfix | Medium |
Updates `fill_buffer()` to pass `BUFFERING_DEFAULT_FILECHUNK` when a second handle has remaining data, enabling round‑robin pre‑buffering and preventing thread starvation Updates `fill_buffer()` to pass `BUFFERING_DEFAULT_FILECHUNK` when a second handle has remaining data, enabling round‑robin pre‑buffering and preventing thread starvation Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Bugfix | Medium |
Caps HTTP handles to one `BUFFERING_DEFAULT_FILECHUNK` per call in `buffer_handle()` and replaces per‑chunk `fprintf` with `logf()` to eliminate blocking writes Caps HTTP handles to one `BUFFERING_DEFAULT_FILECHUNK` per call in `buffer_handle()` and replaces per‑chunk `fprintf` with `logf()` to eliminate blocking writes Source: llm_adapter@2026-05-28 Confidence: high |
— |
Full changelog
[2026.05.28]
Added
netstream: background prefetch thread per HTTP stream — a dedicated thread fills a 2 MBVecDequebuffer from the network sorb_net_readdrains in sub-µs without ever blocking on TCP; forward seeks within the prefetch window consume buffered bytes without issuing a newRangerequest; backward or large (>2 MB) forward seeks issue aRangerequest and replace the reader thread atomically
Fixed
- HTTP streaming: removed reqwest total-request timeout (only
connect_timeout15 s remains) — the previous 30 s deadline killed large remote files mid-stream;read_as_file()reverted to a retry-loop that fills the full requested buffer - Buffering interleaving:
fill_buffer()now passesBUFFERING_DEFAULT_FILECHUNKinstead of0when a second handle has remaining data, so next-track pre-buffering round-robins with the current track instead of monopolising the buffering thread and starving the ring buffer - HTTP pre-buffering cutting current-track playback:
buffer_handle()caps HTTP handles to oneBUFFERING_DEFAULT_FILECHUNKper call;streamfd.creplaces per-chunkfprintf(stderr, …)withlogf()(compiled out in production) to eliminate hundreds of blockingwrite(2)syscalls per track - Expo: Navidrome cover art now appears in the miniplayer, full-screen player, and queue when playing ND HTTP streams —
coverArtUrlFromStreamUrl()added tonavidrome-client.tsreconstructs agetCoverArtURL from theid,u,t,sparameters embedded in the stream URL; used as a fallback intrackFromProtowhenalbum_artis empty
Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.05.27...2026.05.28
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Track A modern Music Player Daemon based on Rockbox firmware
Get notified when new releases ship.
Sign up freeAbout A modern Music Player Daemon based on Rockbox firmware
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]