## yuroyami/syncplay-mobile — v0.24.0…v0.25.0

_73 commits._

### Features
- **feat(room): the visualizer offers fourteen drawings, not forty-six** (6d835ce)
- **feat(chat): chat owns its colours, events name their people, GIFs can be kept** (79519e2)
- **feat(room): visualizer switch turns the video off, with director and pattern rows** (49cb60c)
- **feat(home): tell what each engine is and can do** (64f7978)
- **feat(tv): list this device's videos where no picker can be reached** (322c186)
- **feat(tv): let a remote work every control** (533fd25)
- **feat(mpv): move Android mpv onto libmpvKt 0.2.0** (42404fe)
- **feat(room): give the side panels one owner, and rework the controls** (dbe93c1)
- **feat(chat): fade unseen messages over the picture, and mark new ones** (92a6296)
- **feat(playlist): reorder rows by drag, and offer a restore after a dropout** (729bd0f)
- **feat(tracks): select a video track, and describe every track** (81e27d7)
- **feat(media): let people pick audio files** (239aef8)
- **i18n: add the strings for this release, in all nine languages** (a34b769)
- **feat(invites): add HTTPS join page** (6ca599c)
- **feat(kite): enable audio-only visuals** (1d993a2)
- **feat(art): Add platform and compatibility notes** (06cdac0)
- **Add a browser target, and split the source sets to make room for it** (1702e98)
- **Add Android TV local video picker** (f485105)

### Fixes
- **fix(build): the ExoPlayer-only APK can be rebuilt and compared from outside** (0f850e0)
- **fix(room): random first drawing, 60 fps visualizer, tracks tab survives a HUD toggle** (76a8c8a)
- **fix(room): visualizer rows read as setting rows, and songs from links get a map** (2e217a9)
- **Merge pull request #159 from mukulhase/fix/android-tv-dpad-focus** (b2f32ae)
- **fix(home): fill the app name into every tip** (2f62d96)
- **fix(player): keep mpv off the interface thread** (db8f673)
- **fix(tv): finish the walk a remote takes through a room** (d8c4101)
- **fix(home): let screen readers reach the join form** (5d867fa)
- **fix(home): keep the join form in one layout tree** (8e8188b)
- **Merge pull request #169 from mvanhorn/fix/167-home-keyboard-focus** (c52388a)
- **fix: address self-review findings** (657eb0f)
- **fix(mpv): handle the new video track type in selectTrack** (137429d)
- **fix(sync): report the seek target while its player command waits on Main** (2294b7a)
- **fix(invites): accept only our own join links** (c919a2a)
- **fix(home): refuse a port outside 1 to 65535** (180bfc2)
- **fix(readme): Refresh cached banner on rebuild** (de8d7ce)
- **fix(art): Match frames to screenshot proportions** (a7a82de)
- **Fix more performance and lifecycle defects in the player, the host and the room** (98f5594)
- **Fix connection and performance defects across the transports, the server and the room** (82fdbfb)
- **Fix Android TV D-pad accessibility** (2928b29)

### Backend
- **copy(home): say what each engine really does** (08ec4b4)
- **Merge pull request #163 from mukulhase/feature/android-tv-media-handling** (0bb3e99)
- **Cut 0.24.1, and hand the briefing over to CONTRIBUTING.md** (aecd458)
- **Read the VLC clock from the engine, and key room state to the loaded file** (71e1ee6)
- **Route the last file writes through the browser-safe wrappers** (e94f500)
- **Coalesce outbound state so a seek storm cannot flood the room** (f9ea907)
- **Bound the TLS upgrade, and give each dial its own ceiling** (753d648)
- **Make a failed join cheap, and put the whole connect on the clock** (885f5bf)
- **Correct the parts of this pass that a read-back showed were wrong or too blunt** (07aec68)
- **Bound the inbound backlog, and stop the seekbar collecting behind a hidden HUD** (b393116)
- **Stop the inbound consumer waiting on writes, and free the host's port and threads on stop** (bdddb5e)
- **Dial the official server by name, with its pinned address as a fallback** (c4b15ed)
- **Build the full Android release on Ubuntu, with mpv prebuilt** (1350e9f)
- **Stop building mpv in this repository** (41c1f33)
- **Take the mpv wrapper from libmpvKt instead of carrying a copy** (d122404)
- **Keep the exo asset's old name, fold the dependencies, and dress the release page** (05c8b73)
- **Update AltStore source for v0.24.0** (7e79311)

### Docs
- **docs(release): 0.25.0 reads as one list, biggest change first** (9933c45)
- **docs(build): a verifier gets the tag, the JDK and a link from the README** (0aedaf4)
- **docs(changelog): record the network-share seek fix in 0.24.0** (7760571)
- **docs: present the app as Android, iOS and web** (d23ccdd)
- **docs: add the rounded app badge logo and show it at the top of the README** (ffd4c61)
- **docs: Reword the 0.24.0 changelog to match the README** (302670c)
- **docs: Make the README read plainer** (2a24d89)
- **docs: Refresh README and app artwork** (519728e)

### Chore
- **ci(release): the SDK setup no longer asks for a package that was removed** (dda03b8)
- **build(deps): Compose Multiplatform 1.12.1, navigation3 on its matched pair** (60437f6)
- **chore: ignore the plan documents local tooling writes under docs/** (0dc9db2)
- **style(home): put the version beside the wordmark** (618958c)
- **chore(release): prepare 0.25.0** (f37ce2b)
- **build(shared): finish the KiteConfig move, and gate the live subtitle test** (9b49d98)
- **refactor(room): move the add-media haptics onto the platform callback** (7d269d2)
- **refactor(subtitles): cover the search service with its own tests** (e8898f8)
- **refactor(settings): make the visualizer a player capability** (a0c2115)
- **build: move to the KiteConfig 2.x DSL and refresh dependencies** (fb45518)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/yuroyami/syncplay-mobile?utm_source=github-action)._