What's Changed
- Upload desktop packages to the existing GitHub release by @r0adkll in #1134
- Publish a Homebrew cask for the macOS desktop packages by @r0adkll in #1136
- Give the full-screen player room for its cover art by @r0adkll in #1141
- Lay the player out sideways on every phone in landscape by @r0adkll in #1142
- Back off when the server is unreachable to save battery by @r0adkll in #1147
- Edit custom headers from the Connection pane by @r0adkll in #1158
- Surface Android 17's local network permission in Settings by @r0adkll in #1157
- Scroll player titles that don't fit, fading at the edges by @r0adkll in #1170
- Add build-time and runtime DI benchmarks by @r0adkll in #1171
- Add screen recording and a captures directory to the testbed by @r0adkll in #1175
- Restore campsites and settings after an Android reinstall by @r0adkll in #1178
- Stream media through Ktor with the shared user auth by @r0adkll in #1184
- Store Android tokens with an Android Keystore key by @r0adkll in #1185
- Add a PR stack skill by @r0adkll in #1202
- Apply skip-time changes to a running player by @r0adkll in #1206
- Split CampfireSettings into focused settings interfaces by @r0adkll in #1189
- Record the skip-back amount for skip-back in playback history by @r0adkll in #1205
- Restore the session without decrypting its token by @r0adkll in #1210
- Keep one account per server by @r0adkll in #1217
- Show series book numbers and mark a whole series finished by @r0adkll in #1219
- Fix Android compilation and coverage on fork PRs by @r0adkll in #1220
- Remove redundant ExperimentalKotlinGradlePluginApi Opt-in by @SubhrajyotiSen in #1191
- Mark a whole playlist finished or not finished, and show series on its rows by @r0adkll in #1221
- Condense over-limit store changelogs with Claude in scripts/release by @r0adkll in #1222
Full Changelog: 1.2.0...1.2.1