N20260712
Release ArchiveTune Nightly artifact, generated on 2026/07/12 - 14:18:55 (UTC +0)
π MVP Committer
Congratulations to @rukamori for contributing 42 commit(s) in this release! π
π Contribution Leaderboard
π₯ @rukamori: 42 commit(s)
π₯ @mikooochi: 7 commit(s)
π₯ @adam-adrian: 3 commit(s)
π€ @renovate[bot]: 1 commit(s)
β¨ Changelog
a05cff1- "feat(DownloadLibraryScreen): refine searchable media rows" by (@rukamori)96ff825- "refactor(DatabaseDao): Suppress RoomWarnings.QUERY_MISMATCH on allAlbumsForDownloads()" by (@rukamori)8bd6218- "refactor(DownloadLibraryScreen): Import asPaddingValues" by (@rukamori)5998bda- "feat(DownloadLibraryScreen): add grouped download management tabs" by (@rukamori)cde262b- "fix(DownloadProgressFloatingToolbar): restore paused download controls" by (@rukamori)49e081d- "fix(MusicService): prevent current song queue duplicates" by (@rukamori)45e785e- "fix(YouTubeClient): preserve signed-in playback authentication" by (@rukamori)40aef26- "perf(YTPlayerUtils): reuse playback data for downloads" by (@rukamori)8e5895a- "fix(YTPlayerUtils): prefer Web Remix playback" by (@rukamori)599586a- "remove android vr selection" by (@rukamori)c1472fc- "fix(deps): update all dependencies (#995)" by (@renovate[bot])eeeafc8- "fix(YTPlayerUtils): mark stream client failed when httpStatusCode is null #984" by (@rukamori)ae69949- "refactor(MusicService): define isFullyDownloadedMedia via downloadCache.isCached and ContentMetadata #984" by (@rukamori)a244bd0- "refactor(Updater): migrate nightly channels to canary" by (@rukamori)cb396c5- "fix(CanvasArtworkPlaybackCache): preserve and reuse cached canvas videos" by (@rukamori)30f8c86- "fix(DownloadUtil): restore artwork for downloaded songs" by (@rukamori)93dd9b3- "fix(MoriCipherRuntime): prevent throttled playback URLs" by (@rukamori)ac766bd- "update all submodule" by (@rukamori)855df2e- "update all links" by (@rukamori)f5f2e68- "fix(player): crash on API 29 when opening output switcher (#991)" by (@adam-adrian, @rukamori)4e50247- "fix(player): improve formattedFileSize to dynamically support multi-unit and decimal precision (#988)" by (@adam-adrian, @rukamori)cdba7d0- "reverted screen to previous state" by (@rukamori)5590836- "fix color transparent" by (@rukamori)13e67c8- "fix error coroutines violations" by (@rukamori)e3cf5b4- "fix(CipherSettingsUseCases): reset manual refresh after 24 hours" by (@rukamori)f3c2ac3- "fix(PlaybackAuthPreferences): preserve dataSyncId during playback recovery" by (@rukamori)01dae88- "fix(AboutScreen): avoid composable calls inside remember" by (@rukamori)074a319- "feat(AboutScreen): reconstruct about layout" by (@rukamori)8dd0db0- "refactor(StatsScreen): move artist chart above favourites" by (@rukamori)3ac1d24- "fix(StatsScreen): differentiate artist chart colors" by (@rukamori)615dd76- "update icon pack" by (@rukamori)23efbc7- "fix(StatsScreen): always fill donut chart and remove remaining arc segment" by (@rukamori)2ecd038- "fix(App): reuse cold-start BotGuard warm-up for playback" by (@rukamori)41ceb6a- "fix(LyricsMenu): update controls switch immediately" by (@rukamori)4f4837a- "refactor(GenerateIconPackTask): sample background color from rasterized icon for integrated backgrounds" by (@rukamori)7ba7d44- "fix(GenerateIconPackTask): prevent duplicate launcher icon layers" by (@rukamori)6632d38- "fix(StatsScreen): resolve compose compiler" by (@rukamori)841df4e- "fix(ChiperSettings): animate only changed countdown digits" by (@rukamori)d7ff283- "refactor(StatsScreen): reconstruct listening dashboard and data" by (@rukamori)51c7208- "feat(AppearanceSettings): add V7 and V8 volume bar toggle" by (@mikooochi)a722316- "feat(LyricsScreen): add player controls visibility toggle" by (@mikooochi)dac10b3- "feat(player): native output switcher + reactive device pill for V7/V8 (#981)" by (@adam-adrian, @rukamori)2356c4a- "feat(MusicService): close inactive together rooms" by (@mikooochi)2276dba- "fix(IconScreen): correct search and sort types" by (@mikooochi)c1a7a67- "feat(IconScreen): add icon search, sorting and update existing icons" by (@mikooochi)bd9ea76- "fix(LyricsMenuViewModel): encapsulate isRefetching state and emit completion events on refetch" by (@mikooochi)809ce0d- "fix(LyricsMenu): replace state-based refetch dialog with flow-driven dismiss and add refetch action to search result header" by (@mikooochi)95ace31- "fix(MusicService): reconstruct queue bootstrap" by (@rukamori)4dc44da- "fix(CipherSettingsUseCases): use actual refresh timestamp for rate limit recording" by (@rukamori)815e4cc- "feat(ChiperSettings): animate countdown changes vertically" by (@rukamori)