0.25.0-nightly.20260819.g6f4add7
Bug Fixes
- Don't delete Xcode.app in macOS disk cleanup — breaks codesign
- Pass through unknown quality/codec in stream filter; 404 on subtitle lookup miss (#232)
- users: Honour the target user on favourite endpoints (#236)
- Honour the selected stream group on Android TV (#239)
- Stable stream dedup key using filename/size/bingeGroup/serviceId/addonId (fixes #246)
- Populate Id and expand field mapping for /Search/Hints (#231)
- music: Show singles/EPs in Albums and artist pages again (fixes #208)
- subtitles: Don't 500 when an external subtitle CDN fetch fails
- windows: Spawn ffmpeg/ffprobe/yt-dlp without console windows (CREATE_NO_WINDOW)
- Redact secrets from Debug output (#238)
- runtime: Raise the Unix open-file soft limit (#258)
- macos: Detect VideoToolbox AV1 decode support (#259)
- livetv: Fix EPG not showing in guide (fixes #223)
- nextup: Fix limit placement, EnableResumable=false candidate check, and start_index paging
Features
- Make watch thresholds configurable (fixes #211) (#225)
- addons: Add a common interface for tracking addons (#222)
- db: Add user_media_trackers for per-user media tracking connections (#240)
- tracking: Add the delivery queue and its retry worker (#242)
- torrent: Pass addon-provided trackers through to the magnet (#266)
Refactoring
- Replace ServiceId newtype with plain String and lowercase on comparison
- Extract GetItemsQuery::is_default_sort to deduplicate sort override logic
- Introduce JellyfinClient trait for per-client behavioral overrides (#254)
- music: Keep episode titles clean; centralize S/E formatting (#264)
- playback: Consolidate HW acceleration into Accelerator trait (#265)