Skip to content

Releases: NatuneGroup/Natune

N20261103

N20261103 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Nov 12:29
2fc3dad

Nightly build

Automated nightly build from the dev branch. Not intended for production use.

Commits

  • fix(lyrics): match the library's interlude threshold for line-synced rows (f4ebdde)
  • fix(lyrics): draw Enhanced with the library view again on Android 10+ (5e19935)
  • fix(startup): dedupe journaled and last attempts by identity (41ffc32)
  • fix(startup): honour acknowledgement and healthy completion in the crash-loop gate (1647a64)
  • fix(lyrics): fall back to the plain sweep when per-letter shaping would change glyphs (07460a1)
  • fix(startup): only show launch report after a real startup crash loop (1654375)
  • feat(acoustics): simpler, smoother acoustic graph (5d71aff)
  • fix(lyrics): default word-synced priority on, gate menu on appearance (4f9a5a7)
  • fix(logging): keep Timber tags consistent and chunk release logcat (473dc2d)
  • fix(lyrics): keep canonical provider branding in the attribution label (96972a7)
  • fix(lyrics): draw emphasised graphemes as isolated shaped runs (e9f5b78)
  • perf(logging): gate debug logging out of release builds (9f50ceb)
  • fix(lyrics): resolve band overshoot against layout density (81819f3)
  • fix(lyrics): readable source names, proper menu icons and item gating (969f986)
  • fix(lyrics): keep sweep clip bands from slicing glyph edges (50dea23)
  • 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)

N20261102

N20261102 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Nov 18:51
88e5ce2

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)

local-N20261101 (signed nightly, 12dcaaa7)

Choose a tag to compare

@vossgraves vossgraves released this 01 Nov 01:03
12dcaaa

Nightly N20261101 (12dcaaa) Android APKs re-signed locally with the persistent debug key (cert SHA-256 6db8326a…f9d9) so they install over earlier local builds. Not signed with the release keystore; CI signing secrets are still not configured.

N20261101

N20261101 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Nov 01:02
12dcaaa

Nightly build

Automated nightly build from the dev branch. Not intended for production use.

Commits

  • feat(app): port ENHANCED sweep, depth, glide and interludes (c478db9)
  • fix(shared-ui): drop the invalid lazy item import from the queue panel (200e149)
  • fix(shared-ui): keep the queue selection actions reachable after scrolling (9b3d4c1)
  • perf(player): read the sleep pill from the shared countdown (83ee6cb)
  • feat(shared-ui): collapse the playback queue header into a compact row (55fbfad)
  • feat(audio): show live compressor gain reduction in the audio chain (5433f04)
  • docs: record crash logs routes and recovery acknowledgement (8243de4)
  • feat(startup): add the Developer crash logs page and detail (5e6b434)
  • perf(desktop): close the fullscreen video when the window is hidden (dae47b9)
  • perf(ui): gate the SimpMusic lyrics gradient on the started lifecycle (48f15a4)
  • perf(desktop): sleep the position checkpoint loop while paused (16bb23c)
  • perf(playback): stop the widget progress timer with the screen (887c832)
  • fix(settings): let the Apple menus toggle write only its own key (68b5627)
  • fix(settings): keep the fresh-install indicator on the default style (fd67648)
  • feat(startup): restyle the crash report screen and acknowledge shown crashes (e65ca3f)
  • revert(about): restore the unused SukiSU About background files (c96d1a8)
  • feat(startup): restyle the startup recovery screen in Material 3 (8fea251)
  • docs(agents): record the Apple Music default for the player menu (281a232)
  • docs(settings): document the player menu style and About surfaces (f180dd3)
  • fix(player): place the caret at the end of the prefilled source search (dbc5376)
  • fix(settings): derive the Apple menus surface from the effective menu style (15197e2)
  • chore(about): remove the unused SukiSU About background (d6b0978)
  • feat(startup): keep crash and exit records in one bounded store (077fddc)
  • fix(ui): share marquee phase and fades with app titles (4a85db0)
  • fix(shared-ui): keep the first followed line from gliding in (6316dfe)
  • docs(sponsorblock): describe the paused-state polling (823c542)
  • perf(ui): pause shimmer sweeps while the app is not started (b4b927d)
  • feat(desktop): read ENHANCED depth on the desktop host (1832442)
  • feat(shared-ui): glide ENHANCED rows into place on a line change (5aa1852)
  • fix(ui): read typing-dot phase inside the dot loops (004038a)
  • fix(playback): wake paused loops on track and timeline changes (a595da3)
  • fix(ui): default settings marquee to the motion policy (c7311c3)
  • fix(player): prefill switch-source search with the track (e76c79f)
  • fix(queue): import scrollBy and drop the invalid item import (0140450)
  • fix(playback): refresh the resume file when the volume changes (c543030)
  • fix(ui): restore marquee fades and phase persistence; let list titles wrap (be0a93b)
  • feat(player): add a player menu style choice (38d4e70)
  • style(ui): use upper snake case for the Bit Chord idle bar scale (5741c63)
  • fix(playback): honor the persistent queue setting on paused saves (5f11461)
  • perf(ui): pause decorative loops while the app is not started (7280b6e)
  • perf(shared-ui): stop idle motion and checkpoint loops when hidden (48c1e9b)
  • feat(shared-ui): refine ENHANCED lyrics toward Apple Music motion (db943d1)
  • perf(playback): sleep service loops while playback is paused (993780a)
  • feat(desktop): set an 800x600 minimum window size (329db2d)
  • feat(queue): fold the queue extras into one row for Apple Music and SimpMusic (c3a9b47)
  • feat(queue): compact the queue header and share the sleep countdown (bf4f82a)
  • fix(player): keep the last cover on screen while the next one loads (25ec298)
  • fix(about): replace the glass background with tonal surfaces (c2e2bb2)
  • fix(settings): hide tab bar, rail and mini player on settings (201e65b)
  • fix(ci): clean staging hand-offs and keep the newest five nightlies (ad5b264)
  • feat(desktop): mount the equalizer graph and persist band levels (d92b953)
  • refactor(shared): remove uncalled pre-cache and silence skipper files (88d0412)
  • feat(shared-ui): compact the player queue header card (4d2a4d4)
  • feat(queue): compact the player queue header and rows (d5f5c62)
  • fix(ui): let list rows and action dialogs grow with font scale (1848a88)
  • test(settings): pin the registry at 648 after the two rc6 keys (50a0a3c)
  • docs(credits): credit Metrolist 14.0.0-rc6 behavior re-implementations (ceefd98)
  • fix(player): keep the previous cover on screen while the next one loads (72a92ad)
  • feat(settings): add the mobile-data animated artwork switch on Android (8d9ee6b)
  • fix(lyrics): read the saved lyrics text size in shared player slots (09cb763)
  • refactor(sleep-timer): derive sheet countdowns from the timer deadline (0653888)
  • fix(playback): keep the paused state on widget next and previous (05e3c07)
  • fix(equalizer): import the generated graph string accessors (09eca01)
  • fix(canvas): declare the cellular flag on the app connectivity model (01a12e2)
  • feat(settings): add a palette style row to the appearance page (cb71e5c)
  • feat(theme): build a saved palette color with its style (49e2809)
  • fix(player): opt in to the foundation marquee spacing API (c34e745)
  • build(shared-ui): add material-kolor for saved-color schemes (7c7bdef)
  • fix(dsp): smooth the gain-reduction readout (38aa92d)
  • feat(equalizer): add a stable graph for band gain drags (c0580b2)
  • fix(equalizer): keep a 0 dB band in the cascade (f5514c6)
  • feat(player): keep the cover on screen while the next artwork loads (eb7efe1)
  • fix(sleep-timer): wake countdown sheets once per displayed second (297097b)
  • feat(playback): add a bounded prefix pre-cache for direct files (1f7a6f3)
  • fix(desktop): check Discord heartbeat acks and drop a dead gateway (ab75aaf)
  • feat(player): apply swipe sensitivity to artwork snap threshold (0183af0)
  • feat(canvas): hold animated artwork back on cellular when requested (d98b9db)
  • feat(dsp): add the pure silence skipper and instant detector (8e1fc24)
  • fix(lyrics): report a rejected manual AI translation (c635b4c)
  • perf(ios): start the Telegram session off the main thread (6681e51)
  • perf(player): stop ambient background motion while paused (484c320)
  • feat(lyrics): take the saved text size and bound the list inset (491dba8)
  • perf(desktop): open the session graph off the launch thread (1f121f4)
  • perf(android): defer the source refresh schedule and optional downloads (abfd788)
  • feat(settings): add contract keys for animated artwork and palette style (46313ab)
  • feat(player): play track titles once per track (e13493e)
  • feat(android): keep the play state on Next and Previous (f5c1d26)
  • feat(playback): keep the paused state on manual next and previous (6310e09)
  • fix(ios): pass the NSURLCredentialPersistence enum entry (cdbdef4)
  • fix(integ): repair PR #63 iOS, desktop and parser CI failures (a1cdd77)
  • fix(integ): reconcile lanes A-D after merge (91d86b6)
  • fix(android): recover startup crashes before heavy initialization (32036ba)
  • fix(android): preserve legacy settings and nullable migration values (ecbedd6)
  • test: add iOS downloads and local songs unit tests (95a14e1)
  • docs(desktop): name Android's BuildConfig credentials in build comments (23748e9)
  • docs(ios): correct the Last.fm key-pair note in the iOS build settings (cf049e0)
  • docs(desktop): record Amazon, SpatialFlow, YouTube OAuth and hidden playlist routes (f147e48)
  • feat(shared-ui): leave hidden playlists out of the library list (3513f5f)
  • feat(desktop): install the SpatialFlow typeface and draw the player title in it (e2c2b8e)
  • feat(desktop): authorize Amazon Music in a native Turnstile window (0797e5f)

Android APKs are unsigned because one or more Android signing secrets are missing.

N20261031

N20261031 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 31 Oct 22:06
d631364

Nightly build

Automated nightly build from the dev branch. Not intended for production use.

Commits

  • fix(shared-ui): drop the invalid lazy item import from the queue panel (200e149)
  • fix(shared-ui): keep the queue selection actions reachable after scrolling (9b3d4c1)
  • perf(player): read the sleep pill from the shared countdown (83ee6cb)
  • feat(shared-ui): collapse the playback queue header into a compact row (55fbfad)
  • feat(audio): show live compressor gain reduction in the audio chain (5433f04)
  • docs: record crash logs routes and recovery acknowledgement (8243de4)
  • feat(startup): add the Developer crash logs page and detail (5e6b434)
  • perf(desktop): close the fullscreen video when the window is hidden (dae47b9)
  • perf(ui): gate the SimpMusic lyrics gradient on the started lifecycle (48f15a4)
  • perf(desktop): sleep the position checkpoint loop while paused (16bb23c)
  • perf(playback): stop the widget progress timer with the screen (887c832)
  • fix(settings): let the Apple menus toggle write only its own key (68b5627)
  • fix(settings): keep the fresh-install indicator on the default style (fd67648)
  • feat(startup): restyle the crash report screen and acknowledge shown crashes (e65ca3f)
  • revert(about): restore the unused SukiSU About background files (c96d1a8)
  • feat(startup): restyle the startup recovery screen in Material 3 (8fea251)
  • docs(agents): record the Apple Music default for the player menu (281a232)
  • docs(settings): document the player menu style and About surfaces (f180dd3)
  • fix(player): place the caret at the end of the prefilled source search (dbc5376)
  • fix(settings): derive the Apple menus surface from the effective menu style (15197e2)
  • chore(about): remove the unused SukiSU About background (d6b0978)
  • feat(startup): keep crash and exit records in one bounded store (077fddc)
  • fix(ui): share marquee phase and fades with app titles (4a85db0)
  • fix(shared-ui): keep the first followed line from gliding in (6316dfe)
  • docs(sponsorblock): describe the paused-state polling (823c542)
  • perf(ui): pause shimmer sweeps while the app is not started (b4b927d)
  • feat(desktop): read ENHANCED depth on the desktop host (1832442)
  • feat(shared-ui): glide ENHANCED rows into place on a line change (5aa1852)
  • fix(ui): read typing-dot phase inside the dot loops (004038a)
  • fix(playback): wake paused loops on track and timeline changes (a595da3)
  • fix(ui): default settings marquee to the motion policy (c7311c3)
  • fix(player): prefill switch-source search with the track (e76c79f)
  • fix(queue): import scrollBy and drop the invalid item import (0140450)
  • fix(playback): refresh the resume file when the volume changes (c543030)
  • fix(ui): restore marquee fades and phase persistence; let list titles wrap (be0a93b)
  • feat(player): add a player menu style choice (38d4e70)
  • style(ui): use upper snake case for the Bit Chord idle bar scale (5741c63)
  • fix(playback): honor the persistent queue setting on paused saves (5f11461)
  • perf(ui): pause decorative loops while the app is not started (7280b6e)
  • perf(shared-ui): stop idle motion and checkpoint loops when hidden (48c1e9b)
  • feat(shared-ui): refine ENHANCED lyrics toward Apple Music motion (db943d1)
  • perf(playback): sleep service loops while playback is paused (993780a)
  • feat(desktop): set an 800x600 minimum window size (329db2d)
  • feat(queue): fold the queue extras into one row for Apple Music and SimpMusic (c3a9b47)
  • feat(queue): compact the queue header and share the sleep countdown (bf4f82a)
  • fix(player): keep the last cover on screen while the next one loads (25ec298)
  • fix(about): replace the glass background with tonal surfaces (c2e2bb2)
  • fix(settings): hide tab bar, rail and mini player on settings (201e65b)
  • fix(ci): clean staging hand-offs and keep the newest five nightlies (ad5b264)
  • feat(desktop): mount the equalizer graph and persist band levels (d92b953)
  • refactor(shared): remove uncalled pre-cache and silence skipper files (88d0412)
  • feat(shared-ui): compact the player queue header card (4d2a4d4)
  • feat(queue): compact the player queue header and rows (d5f5c62)
  • fix(ui): let list rows and action dialogs grow with font scale (1848a88)
  • test(settings): pin the registry at 648 after the two rc6 keys (50a0a3c)
  • docs(credits): credit Metrolist 14.0.0-rc6 behavior re-implementations (ceefd98)
  • fix(player): keep the previous cover on screen while the next one loads (72a92ad)
  • feat(settings): add the mobile-data animated artwork switch on Android (8d9ee6b)
  • fix(lyrics): read the saved lyrics text size in shared player slots (09cb763)
  • refactor(sleep-timer): derive sheet countdowns from the timer deadline (0653888)
  • fix(playback): keep the paused state on widget next and previous (05e3c07)
  • fix(equalizer): import the generated graph string accessors (09eca01)
  • fix(canvas): declare the cellular flag on the app connectivity model (01a12e2)
  • feat(settings): add a palette style row to the appearance page (cb71e5c)
  • feat(theme): build a saved palette color with its style (49e2809)
  • fix(player): opt in to the foundation marquee spacing API (c34e745)
  • build(shared-ui): add material-kolor for saved-color schemes (7c7bdef)
  • fix(dsp): smooth the gain-reduction readout (38aa92d)
  • feat(equalizer): add a stable graph for band gain drags (c0580b2)
  • fix(equalizer): keep a 0 dB band in the cascade (f5514c6)
  • feat(player): keep the cover on screen while the next artwork loads (eb7efe1)
  • fix(sleep-timer): wake countdown sheets once per displayed second (297097b)
  • feat(playback): add a bounded prefix pre-cache for direct files (1f7a6f3)
  • fix(desktop): check Discord heartbeat acks and drop a dead gateway (ab75aaf)
  • feat(player): apply swipe sensitivity to artwork snap threshold (0183af0)
  • feat(canvas): hold animated artwork back on cellular when requested (d98b9db)
  • feat(dsp): add the pure silence skipper and instant detector (8e1fc24)
  • fix(lyrics): report a rejected manual AI translation (c635b4c)
  • perf(ios): start the Telegram session off the main thread (6681e51)
  • perf(player): stop ambient background motion while paused (484c320)
  • feat(lyrics): take the saved text size and bound the list inset (491dba8)
  • perf(desktop): open the session graph off the launch thread (1f121f4)
  • perf(android): defer the source refresh schedule and optional downloads (abfd788)
  • feat(settings): add contract keys for animated artwork and palette style (46313ab)
  • feat(player): play track titles once per track (e13493e)
  • feat(android): keep the play state on Next and Previous (f5c1d26)
  • feat(playback): keep the paused state on manual next and previous (6310e09)
  • fix(ios): pass the NSURLCredentialPersistence enum entry (cdbdef4)
  • fix(integ): repair PR #63 iOS, desktop and parser CI failures (a1cdd77)
  • fix(integ): reconcile lanes A-D after merge (91d86b6)
  • fix(android): recover startup crashes before heavy initialization (32036ba)
  • fix(android): preserve legacy settings and nullable migration values (ecbedd6)
  • test: add iOS downloads and local songs unit tests (95a14e1)
  • docs(desktop): name Android's BuildConfig credentials in build comments (23748e9)
  • docs(ios): correct the Last.fm key-pair note in the iOS build settings (cf049e0)
  • docs(desktop): record Amazon, SpatialFlow, YouTube OAuth and hidden playlist routes (f147e48)
  • feat(shared-ui): leave hidden playlists out of the library list (3513f5f)
  • feat(desktop): install the SpatialFlow typeface and draw the player title in it (e2c2b8e)
  • feat(desktop): authorize Amazon Music in a native Turnstile window (0797e5f)
  • feat(desktop): read YouTube OAuth and Amazon Turnstile credentials at build time (845cf7c)

Android APKs are unsigned because one or more Android signing secrets are missing.

Update feed (do not delete)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Oct 03:30
ee8d6e0

Holds the nightly.json and stable.json manifests used by the in-app updater.

N20261030

N20261030 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Oct 03:29
ee8d6e0

Nightly build

Automated nightly build from the dev branch. Not intended for production use.

Commits

  • fix(nightly): fetch appimagetool 1.9.1 from its own repository (5118897)
  • fix(nightly): deb extraction parent, MinGW toolchain DLL fallback (20eb44f)
  • fix(nightly): Linux scheme entry, Windows MinGW runtime, iOS link heap (36876a0)
  • fix(nightly): desktop native builds and Xcode patch release (ada9495)
  • fix(ios): disambiguate the route picker tint colour and drop a member import (1bd62cd)
  • test(release): create fixture build-tools and stop step blocks at job boundaries (4f272e8)
  • fix(release): keep the configured Android SDK root authoritative (52e785f)
  • fix(integration): align workflow and glass source contracts (751a8db)
  • docs: native iOS interface, lyric view and credits (289722e)
  • refactor(ios): build the swept lyric text outside the view body (22a376f)
  • ci(ios): select Xcode 26 and type-check the Swift app (9b4b1cf)
  • feat(ios): native SwiftUI lyrics for the Enhanced look (09447a2)
  • docs: credit SukiSU-Ultra, compose-miuix-ui and Kyant for the glass port (5a89642)
  • fix(settings): read the Liquid Glass search entry title from resources (b7def0e)
  • feat(ios): native Liquid Glass tab bar and mini player (f4c17f8)
  • feat(about): add the SukiSU moving background and frosted About rows (0c85da1)
  • fix(sponsorblock): refuse malformed persisted lookup origins (5b18c51)
  • feat(settings): add the Liquid Glass customisation page (8219fc6)
  • feat(lyrics): depth, background vocals and system motion on iOS (4f3194c)
  • feat(glass): throttle the app-wide glass source and apply user tuning (9d83917)
  • test(ios): accept asset-catalog folder references in the project contract (0f3360d)
  • feat(ios): expose AirPlay routing and compensate lyric output delay (bd74eff)
  • feat(glass): add persisted liquid glass tuning keys and model (dcdf822)
  • fix(glass): delegate layerBackdrop to an aliased Kyant import (88202cb)
  • feat(ios): harden Now Playing metadata and artwork publishing (49d5e5d)
  • test(shared): refresh settings and podcast compatibility fixtures (e58f0bc)
  • fix(ios): align release Xcode selection and host contracts (e98269e)
  • ci: pass --rerun per test task and keep artifact uploads non-fatal (c1dfd37)
  • fix(desktop): retain the extracted queue metadata model import (b82ff34)
  • fix(metadata): export Room 38 and portable state 10 (ea2aed0)
  • fix(metadata): keep the download title projection internal (1024c02)
  • ci(tests): keep the shared KMP verdict step authoritative (96b7f40)
  • fix(shared-ui): tag bottom-bar tabs and follow the expanded-only scroll hide (cc70238)
  • test(shared-data): make the live InnerTube smoke tests opt-in (112826d)
  • fix(metadata): read the shared-domain override fields into locals before using them (5171ef4)
  • docs: record the song metadata schema beside the podcast one (bcf5a13)
  • feat(metadata): carry song edits into portable state, queue and every list (1395ec0)
  • feat(ui): edit song info dialog with reset (37a190d)
  • feat(ui): show song edits across library, home and playlists (1310f58)
  • feat(metadata): apply song edits to playback, media items and presence (f93a96d)
  • feat(db): add song metadata override table (schema 38) (c6e540f)
  • docs(releasing): record the repaired native prerequisites (555b855)
  • ci(android): make APK staging and build-tools selection self-diagnosing (bb17fd9)
  • test(desktop): name the native dependency regressions with the usual casing (7be4bfa)
  • fix(desktop): build the MinGW zlib closure and report failing dependency logs (f3648dc)
  • fix(ios): verify the FFmpeg release signature from a short GNUPGHOME (5dcda32)
  • fix(desktop): audit macOS dylibs with lipo's documented argument order (f2cc0fd)
  • fix(desktop): remove the unresolved merge marker from the playback engine (5eaf388)
  • ci: hand release artifacts over through staging releases (1f90808)
  • fix(settings): resolve the theme-import palette write through the atomic owner (d00eeb6)
  • emulator-qa: open the merged Appearance page by route (5c95e08)
  • fix(shared-data): keep the uploads cookie map free of JVM collection APIs (7f62c71)
  • ci: retrigger checks (2e8b043)
  • fix(history): reuse the shared JsonObject.obj helper in history parsing (b441971)
  • test(shared-data): cover the YouTube upload client policy and wire format (d0f8cf2)
  • fix(desktop): close the uploads transfer client with the session graph (4f0993f)
  • feat(desktop,ios): bind the uploads page on desktop and mark it unavailable on iOS (d2f8664)
  • feat(shared-ui): add uploads screen, route and library shortcut (6f68b00)
  • feat(app): add uploaded songs screen, delete action and library shortcut (f9e39de)
  • fix(app): de-duplicate every uploaded page before listing (b8b0864)
  • feat(app): add YouTube Music uploads repository and worker (6f560f7)
  • feat(shared-data): add YouTube Music uploads client and shelf parser (f43d8c0)
  • docs: record infinite-queue ownership and the queue settings anchor (00de0cc)
  • feat(app): service-owned infinite queue and queue actions across player styles (b654db8)
  • feat(shared-ui): add common queue panel and wire desktop/iOS hosts (6e22c78)
  • feat(shared-data): bound radio paging and undoable edits in the portable queue owner (0a9c553)
  • feat(shared-domain): add infinite-queue policy and occurrence-safe queue editing (2be2364)
  • fix(settings): resolve cross-setting conflicts with atomic rules (bcf7118)
  • fix(settings): keep Apple Music options independent (1ef02b1)
  • docs(architecture): record podcast history paging and progress (a27ac26)
  • fix(sponsorblock): apply podcast settings live and guard episode seeks (7b10c61)
  • feat(podcast): page full YouTube history and track episode progress (2f59bdd)
  • docs(sponsorblock): document podcast segment skipping (d9139cf)
  • feat(shared-ui): resume podcast episodes from saved progress on desktop and iOS (74dd66a)
  • feat(shared-data): store podcast episode progress in portable state v9 (a9083c4)
  • feat(shared): skip podcast SponsorBlock segments on desktop and iOS (b61a20d)
  • feat(sponsorblock): skip podcast episode segments when opted in (5576c62)
  • fix(shared-ui): mirror the per-style player settings answers (c21d5ab)
  • fix(player): make player settings match what each style reads (e980810)
  • feat(shared-ui): mirror the shared player control motion (07555e6)
  • feat(player): animate player controls with one shared transform motion (c210b52)
  • ci: run shared KMP module tests on PRs (53ea1da)
  • docs: regenerate toolchain table for minSdk 24 (0be6491)
  • docs: state API 24 as the runtime minimum in CONTRIBUTING (cc9a40c)
  • build: lower minSdk to 24 and enable core library desugaring (ac0ffbc)
  • fix(android): guard API 26 platform calls for minSdk 24 (85eecac)
  • fix(dsp): load AAudio at runtime so the float DSP library loads below API 26 (cc49997)
  • fix(ci): repair nightly release prerequisites and native packaging (c6c5407)
  • fix(auth): keep login WebViews readable above the keyboard (4b2c650)
  • fix(lyrics): fade the lyrics box edges on every Android surface (5f25518)
  • fix(lyrics): add a box edge fade to the shared lyrics renderer (3c9ca43)
  • feat(about): enlarge the About header logo to a 112dp hero (7b4555e)
  • fix(settings): drop the late edge fade on settings description marquees (8efec83)
  • feat(settings): merge Appearance into one page with section headings (aacff41)
  • fix(ios): resolve simulator compile errors in the iOS mounts (0a69b0b)
  • ci: compile shared modules for the iOS simulator on macOS (79d8b93)
  • docs(ios): record the Listen Together and Telegram mounts in the iOS status and route map (PR #28) (0573f67)
  • fix(ios): mount Telegram browse and bots over the signed-in client (PR #28) (53be9e1)
  • fix(ios): mount Listen Together room, chat and settings over the session graph (PR #28) (ec64540)
  • fix(shared-data): selectTracks note no longer claims the signed-in path uses it (12bd232)

Android APKs are unsigned because one or more Android signing secrets are missing.