Repository navigation
N20261102
Pre-release
Pre-release
Nightly build
Automated nightly build from the dev branch. Not intended for production use.
Commits
- fix(ios): import the cinterop ptr and value extensions (31e5503)
- fix(ios): build the outputVolume signature from obj-C types (e39c480)
- fix(ios): read output volume without NSInvocation (6340fe3)
- fix(integ): repair the second round of batch-13 ios-compile and test failures (836ff3a)
- fix(integ): repair the batch-13 ios-compile and unit test failures (79ce659)
- test(pool): drop nullable sort in recovery flight test (1edf2a6)
- fix(pool): address review on batch 12 pool follow-ups (e0a1f19)
- fix(desktop): use RequestedShuffleEnabled in windows smtc (6015198)
- fix(desktop): avoid nested generic lambdas in windows smtc handlers (0bf2bee)
- fix(spotify): import native Volatile in ios librespot (173c014)
- fix(spotify): harden desktop librespot sign-in (a8af304)
- feat(spotify): add ios librespot OAuth sign-in (a9f4678)
- fix(ios): name the shipped Text.Layout.Run in the lyric sweep (1d8f3e8)
- feat(spotify): add desktop librespot OAuth sign-in (ecb769b)
- fix(integ): repair the shared-ui and test failures from batch 12 (bb33ad2)
- fix(playback,lyrics): address review on study improvements (3868f5a)
- fix(spotify): guard premium recheck against catalog change (639618c)
- fix(spotify): bind librespot tokens to catalog identity (7c1d240)
- fix(spotify): harden librespot OAuth slice (a676af4)
- feat(playback): show -30/+30s seek actions on long content (941d909)
- fix(integ): repair the two batch-12 CI compile errors (a892114)
- refactor(playback): move the player-cache trim into its own file (09fd43d)
- feat(playback): hold a low-latency Wi-Fi lock while playing (56ca2c1)
- feat(playback): debounce the buffering flag by 150ms (82edabc)
- feat(spotify): librespot PKCE OAuth sign-in for the Android slice (0cd29b1)
- feat(player): settle the Apple artwork a little smaller on pause (4bdbe54)
- feat(lyrics): dim passed lines less and resume on tap-to-seek (26b733d)
- refactor(ios): share the pooled-account recovery helper (2ea15a8)
- fix(pool): cache discovery and back off pool auth failures (fb38d55)
- fix(pool): classify tidal racing 401s through the dead-report policy (85d210a)
- fix(ios-playback): advance observed intent generation on the policy actor (bc7fe6e)
- fix(presence): beat every 15 minutes with jitter (29159ff)
- fix(ios-playback): tag mute policy commands with the processed intent generation (0ca527d)
- fix(ios-playback): serialize mute policy commands with user intent (49b5646)
- feat(ios-playback): pause on mute with explicit command origin (8349c36)
- revert(ios-playback): defer pause-on-mute to its own branch (7da5211)
- fix(ios-playback): drive output-mute policy through a pure reducer (1c0ac9e)
- test(ios-lyrics): probe reduced-motion sweep before the word starts (e2053bf)
- fix(ios-lyrics): address Sol review on native lyric view (d7495a7)
- fix(ios-playback): keep sampling volume behind a policy mute pause (97e3257)
- fix(pool): adopt typed recovery outcomes across pooled report hosts (8adca81)
- fix(ios-playback): sample the output volume instead of KVO (d6e995c)
- feat(ios): bring native lyric view to Enhanced parity (a319c5a)
- fix(ios-playback): resolve review findings on parity batch (8fd3e65)
- fix(pool): explicit recovery outcome gates the dead report (26942d8)
- fix(playback): probe the itag-scoped slot for offline cold-start replay (1803a3e)
- fix(ios): uuid-bound block ids and manifest-driven dead detection (8409e64)
- fix(ios): bind and pin the restore-resolution journal (76aeb3e)
- fix(playback): scope YouTube byte-cache keys by the resolved itag (c79b16d)
- fix(playback): rendition-scoped cache keys and a working stop hook (a2b6a7b)
- fix(integ): align the song.db export test and Lyprio endpoint canonical form (f54b26d)
- fix(ios): make restore resolutions resumable through a journaled choice (d895ca6)
- fix(pool): stop report failover on unknown delivery; classify before decode (28c49ec)
- fix(playback): cancel pending recovery on stop and key LOW cache separately (12ed529)
- fix(lyrics): expose feed re-anchors to the iOS lyric view (fc5f29a)
- fix(integ): keep tempo-pitch preset upserts keyed on the id alone (8b7f668)
- fix(integ): resolve PR #70 CI round-6 shared-module test errors (7b219d0)
- fix(pool): configurable ArchivePool base URL with vercel fallback (2a444dc)
- fix(lyrics): keep feed jumps from counting as discontinuities and reveal published readings (a035e13)
- fix(playback): bound recovery-seek marks, defer cache retirement, pause kills retry (c589dc4)
- fix(integ): resolve PR #70 batch review blockers (5c89589)
- fix(integ): cover Metrolist sleeve hiding in PlayerStyleSettingsTest (d2b12d2)
- fix(pool): refresh-or-re-lease before reporting pooled accounts dead (a137509)
- fix(playback): reject stale prepares, seed gapless state, harden codec budget (da411eb)
- fix(ios): gate the app root on restore recovery mode (c529887)
- fix(integ): resolve PR #70 CI round-4 test and iOS canvas errors (db14000)
- fix(ios): persist the joint abort before recovery and block on incomplete rollback (35538a5)
- feat(spotify): dual-playback account roles, engine preference and premium gating (27d49ce)
- fix(playback): own pending retries, feed seeks/pauses, snapshot monitor state (e5c25a3)
- fix(ios): require a persisted abort before restore undo (b05722d)
- feat(ios-playback): mount the shared tempo and pitch dialog (51a12f4)
- feat(ios-playback): pause on device mute (e32b29a)
- feat(ios-playback): bind the remote skip interval commands (9996b11)
- feat(ios-playback): recover a stalled engine once per load (d1991d1)
- feat(ios-playback): mark blend requests that can be re-prepared (aada983)
- fix(integ): resolve PR #70 CI round-3 app/desktopApp/iOS compile errors (5bd8156)
- feat(playback): unify recovery backoff and freeze on repeated rebuffering (845390d)
- feat(provider): race Tidal pool accounts on desktop and iOS (2a8ac62)
- build(deps): align kotlinx-serialization to 1.12.0 (519c384)
- feat(ios): mount the hidden playlists settings page (9f32b95)
- fix(integ): resolve PR #70 CI round-2 shared-ui compile errors (b746964)
- fix(ios): recover jointly and hold a blocked marker for unresolvable restores (3c6c521)
- fix(integ): resolve batch-11 compile errors (0c62536)
- fix(backup): tolerate runtime sidecars and retryable rollbacks in recovery (5ae3984)
- ci(release): skip the Android SDK on non-Android release jobs (a66856f)
- feat(ios): wire the two-phase restore transaction into startup (0b4c4eb)
- fix(lyrics): make Lyprio a built-in provider (c1b94d1)
- fix(about): surface the bundled notices without plugin config (d700bd3)
- feat(backup): two-phase restore commit for joint settings apply (3a390ff)
- fix(startup): compare install stamps only when both sides recorded one (7fc5e2c)
- feat(about): show the bundled pinyin-data notices on every host (2695762)
- fix(lyrics): require every sung source row for the verbatim shortcut (2c6e4ee)
- feat(ios): posix file ops for the restore transaction (7403fb0)
- fix(ios): bundle the Apache-2.0 text the QuickJS notice names (8ccf49f)
- fix(potoken): close a created runtime when creation is cancelled (8b79603)
- fix(startup): key stale-attempt detection on recorded install identity (ff0e6c4)
- feat(backup): crash-safe restore recovery state machine (a351d42)
- feat(lyrics): wire built-in Lyprio server defaults from build credentials (89a4f5f)
- docs(credits): ship the mozillazg pinyin-data MIT license texts (60e7b7b)
- fix(lyrics): stop re-merging already-bilingual translation results (0d80800)