2026.10.20.1748-nightly
- feat(server): mark controllable devices among the activity sessions (77448e6)
- perf(core): reject values that can't be encrypted before parsing them (1565c5e)
- perf(core): index shared records' tags and refs in memory (ec85729)
- docs: describe remote control and the item and play links (53e839c)
- feat(web): play titles on and control other devices (27f7b78)
- feat(web): open titles from aiostreams:// item and play links (2944938)
- feat(web): take remote commands from the session socket (7c0a942)
- feat(server): report the playing version and tracks in sessions (48706ee)
- feat(core): store the playing version and tracks on watch sessions (6d8858a)
- feat(server): take capabilities and relay remote commands to sessions (24611c8)
- feat(core): let a shared record kind count toward its own cap (42327c9)
- feat(web): show notices at their index among the versions (b63a30c)
- feat(jellyfin): add the stream list index to version extensions (c31e6fe)
- feat(android): add the exception's message to an unexpected ExoPlayer error (7afb135)
- fix(web): let up and down leave a text box from its first and last line (025fe89)
- feat(web): scroll the calendar agenda to today on a new visit (7e4407a)
- fix(web): take a party player's position from its soonest report (1796aa0)
- feat(web): title a report of a page restart as one (5f76024)
- fix(android): recreate the page when its renderer ends (84c2d58)
- feat(web): skip row titles and the hero's dots in arrow navigation everywhere (33aa5ba)
- fix(web): leave room for the focus ring in desktop rows (927e0f4)
- fix(web): change party playback speed only for a drift that lasts (9ef673e)
- feat(android): report whether the sound passes through (d4992c1)
- feat(desktop): report whether the sound passes through (27fb0cd)
- feat(web): keep key focus at a row's start (d58c649)
- feat(ui): let a carousel keep a focused slide where the first one starts (8e781aa)
- feat(web): add tooltips to the player buttons and the show download menu (3729cdb)
- fix(web): open the version list with nothing focused on touch screens (7bb7a63)
- fix(desktop): ignore new-window requests for the app's own pages (c318fb0)
- fix(android): set only the subtitle style properties that changed (65ea3ce)
- fix(desktop): set only the subtitle style properties that changed (18ea761)
- fix(web): paint the Android app's root in the page colour outside the player (b5eeea3)
- docs: list the party, player and poster card CSS hooks (d378c9f)
- feat(web): add CSS hooks to party members, messages and the player cover (cf28c5d)
- feat(web): add data-favourite and data-type to poster cards (af474dd)
- feat(web): send and show avatars in watch parties (7f79300)
- feat(server): keep sealed avatars on relay seats (d1a62bf)
- feat(core): add avatars to the party protocol (8781d22)
- feat(web): raise the player controls' idle delay to 5 seconds (b567511)
- perf(web): reuse the subtitle matcher's curves (484887d)
- feat(android): answer player-subtitle-index with every own subtitle's lines (e5592d2)
- feat(desktop): answer player-subtitle-index with every own subtitle's lines (efac820)
- feat(web): skip a file's own subtitle its other subtitles don't back (216ce6b)
- feat(web): settle unsure subtitle syncs on when lines start and end (394b73f)
- chore(desktop): add the thumbnails' dolby_vision crate to the lockfile (8cc1e8a)
- feat(native): reshape Dolby Vision profile 5 thumbnails with each frame's RPU (5534a20)
- feat(web): match added subtitles against a PGS track when a file has no text one (6674a71)
- feat(android): read picture subtitles' lines from the index alone (ad34e94)
- feat(desktop): read picture subtitles' lines from the index alone (f6c92ab)
- feat(native): read PGS and MP4 subtitle timelines (b767db3)
- refactor(desktop): rename the libmpv pins and fetch scripts to libs (1ff9c1a)
- ci(desktop): ship the FFmpeg DLLs beside libmpv on Windows (6f82627)
- feat(desktop): fetch FFmpeg's decoder DLLs from aiostreams-libs on Windows (dc5c348)
- feat(web): give subtitle timing, subtitle style and sound their own menu pages (1326c9d)
- refactor(android): rename libmpv.pin and FetchLibmpv to libs (cecfdf5)
- feat(web): show a retimed copy of subtitles made for another frame rate (d56bc6b)
- fix(desktop): copy packages/native into the Flatpak build (7828295)
- feat(web): show keyframe thumbnails over the seek bar (baa0035)
- perf(android): update libmpv for its HEVC decoding patches (6d68a9d)
- feat(android): make seek-bar thumbnails for player-thumbnail requests (bd6663c)
- ci(desktop): build on packages/native/thumbs changes (56b28a2)
- feat(desktop): make seek-bar thumbnails for player-thumbnail requests (1f20a19)
- feat(native): add thumbnail JNI exports for Android (39eb4ac)
- feat(native): add thumbnails that open their file in the background (87c1ece)
- perf(native): fetch several keyframes at once for thumbnails (4a67d31)
- refactor(native): load libavcodec at runtime for thumbnails (6214d89)
- feat(android): send the reference subtitle's lines from the file's index (8f911ea)
- ci(desktop): build on packages/native/container changes (fb79ef6)
- feat(desktop): send the reference subtitle's lines from the file's index (cb248ee)
- feat(native): read subtitle timelines from a Matroska file's index (f7bc3b2)
- perf(native): size keyframe reads from recent keyframe sizes (ea1c4ca)
- perf(native): fetch the next thumbnail's keyframe while one renders (41d2ecc)
- perf(native): convert thumbnails straight to JPEG YCbCr (2fe4fe1)
- ci(android): install Rust, its Android targets and cargo-ndk (e9ad0b0)
- feat(android): build packages/native into a natives module with cargo-ndk (3494f9d)
- feat(native): add container indexes and seek thumbnails in Rust (e2bca29)
- docs(apps): describe automatic subtitle sync (b441f45)
- feat(web): line added subtitles up with the file's own subtitles (f016dd6)
- feat(android): report a file's own subtitle lines to the page (6c1abd7)
- feat(desktop): report a file's own subtitle lines to the page (348c3df)
- docs: add v2.37 changelog (3bb0b74)