2026.10.15.1607-nightly
- feat(jellyfin): raise the library limit to 500 and cap concurrent catalog requests (3278fa6)
- feat(web): keep the subtitle look on the user's account (e9efa9f)
- docs(apps): describe switching from the avatar and PIN users staying unlocked (57f1f26)
- feat(web): open the user switcher from the avatar (8e26b3c)
- feat(web): keep a user with a PIN unlocked until they switch away (64bd9c0)
- fix(web): play a version's own address rather than the stream route (fc8e554)
- feat(web): pass a version's required headers to app downloads (7e75b36)
- feat(android): send a download file's headers with every request (42a5ffa)
- feat(desktop): send a download file's headers with every request (9149c28)
- feat(web): add subtitle font and shadow settings (412db8d)
- feat(android): set the subtitle font and shadow from player-style (7e59389)
- feat(desktop): set the subtitle font and shadow from player-style (3bc1913)
- fix(android): unset WebVTT's automatic line so cues follow the bottom padding (aa73a5e)
- refactor(web): split the settings page into a folder (e0fda76)
- refactor(web): group settings by settings page section (670238f)
- refactor(web): speak the apps' typed player protocol (4ed5a9b)
- refactor(android): drive both engines through typed player messages (c110f9d)
- refactor(desktop): speak typed player messages instead of mpv commands (4e4523d)
- refactor(web): run every player through one player hook over engines (32aa061)
- refactor(web): add ask and bridgeStore to the app bridge (23dbac9)
- feat(web): play versions that need headers or YouTube in the app's player (17527e3)
- feat(android): send a loadfile's headers from both engines (307e63f)
- feat(desktop): send a loadfile's headers as http-header-fields (c1f365c)
- feat(jellyfin): list versions that need headers or YouTube when PlaybackInfo asks (92d0190)
- chore: update to rsbuild2 (62b0b46)