zarzet
58fb7750e5
fix(mornye): honor forced glass with increased system contrast
...
Apply the explicit blur override consistently to glass surfaces, tab lenses, menus and the clarity slider while preserving text contrast and reduced motion. Update localized guidance and accessibility regression coverage.
2026-10-10 23:21:41 +07:00
zarzet
d273be026d
feat(lyrics): customize text size and animate active lines
2026-10-10 17:04:09 +07:00
zarzet
b30dd9fed0
feat(appearance): support imported TTF and OTF fonts
2026-10-10 16:59:06 +07:00
zarzet
edf575e8fc
fix(playlists): preserve repeated tracks during imports
2026-10-10 02:16:22 +07:00
zarzet
00cff9b3c3
fix(ios): restore lock screen controls across app transitions
2026-10-09 18:08:12 +07:00
zarzet
02901a0c91
feat(lyrics): use Apple Music as the default lyrics provider
2026-10-09 18:08:03 +07:00
zarzet
1cae561e6c
feat(appearance): make Mornye glass outlines optional
2026-10-09 18:07:55 +07:00
zarzet
1b9c35f322
fix(downloads): preserve browser verification and queues across restarts
2026-10-09 18:07:49 +07:00
zarzet
37258a6160
fix(setup): recover folder permissions after Android restarts
2026-10-09 18:07:38 +07:00
zarzet
8251c16ca0
fix(repo): retry initialization before adding a registry
...
Coalesce repository startup and retry a failed owner initialization before changing the registry URL. Keep the original startup error and avoid rollback calls when initialization never succeeded.
Validation: 56 targeted Flutter tests passed (2 optional skips), analyzer clean; two Android profile integration cases verified unreadable extensions remain visible, the repository initializes, and encrypted settings reopen with their original key.
2026-10-08 20:30:24 +07:00
zarzet
9177a683a2
fix(storage): preserve extension encryption keys on read failures
...
Disable automatic deletion across clients sharing Android secure storage and enable protected migration. Reject replacement keys when encrypted settings exist or the saved key is malformed. Surface preparation failures through extension state and preserve retry behavior.
Validation: targeted Flutter tests, analyzer and Android secure-storage compatibility test passed. The original device key-loss trigger is not established.
2026-10-08 20:30:24 +07:00
zarzet
e4b6156249
perf(downloads): index queued positions for scheduling
2026-10-08 17:51:56 +07:00
zarzet
1df593eb4f
perf(downloads): index progress notification candidates
2026-10-08 17:05:13 +07:00
zarzet
a167021766
perf(downloads): retain queue indexes between item removals
2026-10-08 16:15:15 +07:00
zarzet
4ab9e53e43
fix(downloads): finalize album ReplayGain after history is saved
2026-10-08 15:49:48 +07:00
zarzet
8192441f60
perf(downloads): check album ReplayGain readiness in one pass
2026-10-08 15:22:45 +07:00
zarzet
f75593c15a
perf(downloads): batch queue failures when folder access is lost
2026-10-08 12:03:29 +07:00
zarzet
e01ec99c5e
perf(downloads): enqueue selected playlists in one update
2026-10-08 09:27:26 +07:00
zarzet
2ded1cff68
perf(downloads): batch queue cancellation and progress cleanup
2026-10-08 08:47:47 +07:00
zarzet
c67d2a2dd2
perf(downloads): batch cancellation resets for retry
2026-10-08 06:55:26 +07:00
zarzet
e0bdcb5134
perf(collections): delete selected playlists in one transaction
2026-10-08 05:14:44 +07:00
zarzet
3da4126762
perf(downloads): enqueue Wishlist selections in one update
2026-10-08 05:08:24 +07:00
zarzet
8ffd232b35
perf(collections): remove selected tracks in one transaction
2026-10-08 04:58:47 +07:00
zarzet
20e0573d09
perf(collections): batch Love All updates and persistence
2026-10-08 04:01:50 +07:00
zarzet
460f8ebc2d
perf(collections): stage large playlist additions off the UI thread
2026-10-08 03:19:45 +07:00
zarzet
023a093f15
fix(riverpod): remove public notifier getters
2026-10-07 12:42:09 +07:00
zarzet
11d496effc
fix(queue): merge startup additions before persistence and processing
2026-10-07 04:28:07 +07:00
zarzet
d285f26f9a
fix(cache): prune detached projections under source writer barrier
2026-10-07 04:19:14 +07:00
zarzet
100999e5f5
perf(library): load bounded browse pages without rereading prefixes
2026-10-07 04:19:14 +07:00
zarzet
4d0fe68f17
perf(collections): hydrate native snapshots on bounded workers
2026-10-07 04:19:14 +07:00
zarzet
98a83bb8ec
fix(queue): preserve restored downloads during startup flush
2026-10-07 03:41:56 +07:00
zarzet
0c6ad3b96a
perf(library): rank playlist search pages on bounded workers
2026-10-07 03:15:57 +07:00
zarzet
8b2ba446e3
perf(cache): batch cover maintenance on Rust workers
2026-10-07 03:06:00 +07:00
zarzet
ad674a55ad
perf(backup): stream history backup codecs and restore transactions natively
...
Export, import, and split legacy history backups in Rust while preserving schema 15, all history columns, path keys, and atomic restore behavior. Keep provider refresh and pending history edits intact.
2026-10-06 23:29:59 +07:00
zarzet
d1de833184
perf(library): index scans and snapshots with native SQLite workers
...
Move full and incremental ingestion, source snapshots, path keys, and download exclusion to native transactions. Preserve schema 17, FTS, WAL coordination, cancellation, and Android SAF timestamp backfill.
2026-10-06 23:29:33 +07:00
zarzet
6741aada4a
fix(settings): retain pending preferences during asynchronous loading
2026-10-06 22:00:48 +07:00
zarzet
66c5f5a86a
fix(recents): preserve early edits during history loading
2026-10-06 22:00:47 +07:00
zarzet
96f57ddef8
refactor(downloads): normalize completion audio and share album ReplayGain
2026-10-06 22:00:12 +07:00
zarzet
4489136d38
fix(downloads): recover queue ownership after setup failures
2026-10-06 21:59:55 +07:00
zarzet
8f021b01c7
fix(playlists): serialize collection changes and isolate domain models
2026-10-06 21:59:54 +07:00
zarzet
cd313e1bfd
fix(history): serialize mutations and preserve newer file metadata
2026-10-06 21:59:53 +07:00
zarzet
1ad2b7a51d
refactor(extensions): separate domain models from provider state
2026-10-06 21:59:53 +07:00
zarzet
0a29046982
perf(downloads): bound scheduler waiters and prevent overlapping retries
2026-10-06 13:09:54 +07:00
zarzet
2df72112e4
refactor(downloads): extract completion audio and upload staging
2026-10-06 13:09:54 +07:00
zarzet
7b9405aaf6
refactor(downloads): separate metadata resolution and embedding
2026-10-06 13:09:45 +07:00
zarzet
b8787168d1
refactor(downloads): isolate typed results and audio finalization
2026-10-06 13:09:26 +07:00
zarzet
ae918028bd
fix(history): preserve bulk deletion failure handling
2026-10-06 13:08:13 +07:00
zarzet
a6c1409ef5
fix(library): remove deleted files from both library indexes
2026-10-06 00:30:45 +07:00
zarzet
772bd97f7d
fix(downloads): preserve filenames after decryption and conversion
2026-10-06 00:04:14 +07:00
zarzet
a5fdb8db92
fix(library): serialize scan admission and retain reconnect requests
2026-10-05 18:05:30 +07:00