Bug Fixes
- catalog: import catalogs regardless of declared type, filter per item (fixes #267) (260f05f)
- catalog: remove stale catalog members that drop out of a re-import (8199419)
- collections: stop deleting primary image on every settings save (fixes #285) (81ee0ff)
- don't delete Xcode.app in macOS disk cleanup — breaks codesign (eaf7af0)
- episodes: remove incorrect backdrop fallback that broke episode backdrop display (33b5c81)
- honour enable_video_transcoding on SupportsTranscoding and transcode decisions (#283) (b33f49e)
- honour the selected stream group on Android TV (#239) (44b2d58)
- images: regenerate collection image and bust cache on delete (fixes #209) (abb6a3f)
- items: restore episode backdrop fallback (#271) (dd1e23c)
- jellyfin: align server routes and playback requests (#257) (9dadeff)
- jellyfin: preserve session message protocol shapes (#273) (bcd7703)
- livetv: fix EPG not showing in guide (fixes #223) (bc9af33)
- macos: detect VideoToolbox AV1 decode support (#259) (04bdfa5)
- music: show singles/EPs in Albums and artist pages again (fixes #208) (6a6de8f), closes #178
- nextup: fix limit placement, EnableResumable=false candidate check, and start_index paging (6f4add7)
- pass through unknown quality/codec in stream filter; 404 on subtitle lookup miss (#232) (3e1ec99)
- playback: notify clients after playback stops (#281) (fd13105)
- playback: preserve item duration for unprobed streams (#274) (5ba5d31)
- populate Id and expand field mapping for /Search/Hints (#231) (cf10056)
- redact secrets from Debug output (#238) (035b421)
- runtime: raise the Unix open-file soft limit (#258) (1832d07)
- stable stream dedup key using filename/size/bingeGroup/serviceId/addonId (fixes #246) (0b6c623)
- stremio: preserve nested torrent metadata (#275) (443a3b2)
- subtitles: don't 500 when an external subtitle CDN fetch fails (899477e)
- subtitles: handle CRLF cue boundaries (#280) (0b2c92b)
- torrent: stream only the selected bundle file (#277) (a0bafa9)
- tracking: an undeliverable item is not a broken connection (#279) (062aff1)
- transcode: fall back to writable temporary storage (#276) (1118782)
- users: honour the target user on favourite endpoints (#236) (3bf413f)
- windows: spawn ffmpeg/ffprobe/yt-dlp without console windows (CREATE_NO_WINDOW) (f822be0)
Features
- addons: add a common interface for tracking addons (#222) (f84303a)
- db: add user_media_trackers for per-user media tracking connections (#240) (309405b)
- make watch thresholds configurable (fixes #211) (#225) (380067b)
- torrent: pass addon-provided trackers through to the magnet (#266) (4f5f9df)
- tracking: add the delivery queue and its retry worker (#242) (46df919)