This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+14 more
ReleasePort's take
Light signalThe release adds Navidrome/Subsonic support to the macOS Swift app and resolves multiple bugs affecting Expo fetch timeouts, iOS HTTPS connectivity, UI layout, cover‑art handling, and Android CI builds.
Why it matters: Fixes critical Expo fetch‑timeout failures (severity 50), restores iOS HTTPS connections, corrects multi‑platform UI/cover‑art issues, and stabilizes the Android build pipeline after PCM normalizer removal; these directly improve developer and SRE reliability.
Summary
AI summaryUpdates 2026.05.27, Expo, and GPUI across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Adds Navidrome / Subsonic support in macOS Swift app with multiple new components and views Adds Navidrome / Subsonic support in macOS Swift app with multiple new components and views Source: llm_adapter@2026-05-27 Confidence: high |
— |
| Deprecation | Low |
Removes PCM volume normalizer in favor of ReplayGain perceived-loudness normalization Removes PCM volume normalizer in favor of ReplayGain perceived-loudness normalization Source: llm_adapter@2026-05-27 Confidence: high |
— |
| Bugfix | Medium |
Fixes Expo fetch timeouts by replacing AbortSignal.timeout with AbortController + setTimeout and updating md5 dependency Fixes Expo fetch timeouts by replacing AbortSignal.timeout with AbortController + setTimeout and updating md5 dependency Source: llm_adapter@2026-05-27 Confidence: high |
— |
| Bugfix | Medium |
Fixes iOS HTTPS connectivity by setting NSAllowsArbitraryLoads=true in infoPlist Fixes iOS HTTPS connectivity by setting NSAllowsArbitraryLoads=true in infoPlist Source: llm_adapter@2026-05-27 Confidence: high |
— |
| Bugfix | Medium |
Fixes Expo Navidrome album detail UI layout and cover‑art caching issues Fixes Expo Navidrome album detail UI layout and cover‑art caching issues Source: llm_adapter@2026-05-27 Confidence: high |
— |
| Bugfix | Medium |
Fixes GPUI cover‑art derivation to use stream URL parameters, removing blank art on playback start Fixes GPUI cover‑art derivation to use stream URL parameters, removing blank art on playback start Source: llm_adapter@2026-05-27 Confidence: low |
— |
| Bugfix | Medium |
Corrects macOS Now Playing cover‑art priority order, showing Navidrome artwork correctly Corrects macOS Now Playing cover‑art priority order, showing Navidrome artwork correctly Source: llm_adapter@2026-05-27 Confidence: low |
— |
| Bugfix | Low |
Fixes Android CI build workflow by deleting make.dep before dependency scan to avoid stale header issues after pcm_normalizer removal Fixes Android CI build workflow by deleting make.dep before dependency scan to avoid stale header issues after pcm_normalizer removal Source: llm_adapter@2026-05-27 Confidence: high |
— |
| Bugfix | Low |
Derives GPUI Navidrome cover art directly from stream URL parameters to avoid blank artwork on playback start Derives GPUI Navidrome cover art directly from stream URL parameters to avoid blank artwork on playback start Source: granite4.1:30b@2026-05-27-audit Confidence: low |
— |
| Bugfix | Low |
Corrects macOS Now Playing cover‑art priority, preferring derived stream URLs before falling back to albumArt Corrects macOS Now Playing cover‑art priority, preferring derived stream URLs before falling back to albumArt Source: granite4.1:30b@2026-05-27-audit Confidence: low |
— |
Full changelog
[2026.05.27]
Added
- Navidrome / Subsonic support in the macOS Swift app —
NavidromeService(Subsonic API client with MD5 token auth),NavidromeManager(multi-server persistence, active server switching, optimistic star toggling, cover art derivation from stream URLs),NdResponseCache(stale-while-revalidate actor cache, 30 min fresh TTL, 24 h eviction),NdLibraryView(Albums / Artists / Songs / Liked / Playlists sections with infinite-scroll pagination),NdSongRowView(track art toggle, hover play, star button, Play Next/Last + Go to Album/Artist context menu),NdAlbumDetailView,NdArtistDetailView,NdPlaylistDetailView(Play / Shuffle), and search integration (when a Navidrome server is active,search3replaces local gRPC search with ND artist circles, album cards, and song rows)
Removed
- PCM volume normalizer (
pcm_normalizer.c,pcm_normalizer.h, Rust bindings, settings field, docs) — superseded by ReplayGain perceived-loudness normalisation
Fixed
- Expo:
AbortSignal.timeout()replaced withAbortController+setTimeoutinnavidrome-client.ts—AbortSignal.timeoutis absent in some Hermes / React Native versions and was silently swallowing timeouts, making every fetch returnnull; switched tomd5npm package (removed inline implementation); setNSAllowsArbitraryLoads=truein iOSinfoPlistto unblock HTTPS servers that do not meet strict ATS TLS requirements - Expo ND album detail: mirror local
album/[id].tsxhero layout — blurred background image (blurRadius=40) + dark gradient overlay + art shadow + scale/fade scroll animation + sticky header title fade-in; cover art URL now uses a stable salt derived from credentials soexpo-image's disk cache is not busted on every render - Expo ND detail screens: cover art now renders correctly by placing computed dimensions on a parent
Viewand givingImageclassName="w-full h-full"so NativeWind owns the style; track rows in album and playlist detail screens now include aTrackMenuButton"…" context menu - GPUI: Navidrome cover art is now derived directly from the stream URL parameters (
id,u,t,s) instead of requiring an active server connection, eliminating blank album art when playback starts before the ND panel is connected; removes thePENDING_COVER_ARTstaging mutex and the asyncgetSonground-trip - macOS Now Playing /
MPNowPlayingInfoCenter: cover art priority corrected —coverArtUrl(forStreamUrl:)is now tried first (returnsnilfor local tracks), then falls back toalbumArt; the previous order always hit thealbumArtbranch even when it pointed at an empty path, so Navidrome tracks showed no artwork in the system Now Playing widget - CI: Android firmware build workflows now delete
make.depbeforemake libto force a fresh dependency scan after prefix-restore cache hits that carry stale header dependencies (e.g. thepcm_normalizer.hremoval)
Full Changelog: https://github.com/tsirysndr/rockbox-zig/compare/2026.05.25...2026.06.27
Breaking Changes
- Removed PCM volume normalizer (`pcm_normalizer.c`, `pcm_normalizer.h`, Rust bindings, settings field, docs) — superseded by ReplayGain perceived-loudness normalization.
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]