Commit Graph
470 Commits
Author SHA1 Message Date
zarzet 927fd033cd perf(nas): process listings, artwork caches, and upload recovery natively
Move WebDAV/HTML parsing, content-addressed artwork caching, cover promotion, and streamed upload verification to native workers. Preserve proxy authentication, cancellation, cache limits, and deep XML fallback behavior.
2026-10-06 23:27:07 +07:00
zarzet 867371cb67 feat(native): add cancellable data workers and streamed file hashing
Introduce Android, iOS, and Dart worker dispatch with queued cancellation, binary inputs, and background JSON codecs. Move APK verification to streamed native SHA256 while retaining the isolated fallback.
2026-10-06 23:25:39 +07:00
zarzet 2ce3c33c87 fix(network): close request-owned HTTP clients reliably 2026-10-06 22:00:46 +07:00
zarzet 10db2f272c fix(backup): close archive outputs when extraction fails 2026-10-06 22:00:45 +07:00
zarzet 4228791c13 refactor(player): isolate session writes and content URI cache ownership 2026-10-06 22:00:15 +07:00
zarzet 96f57ddef8 refactor(downloads): normalize completion audio and share album ReplayGain 2026-10-06 22:00:12 +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 04f679a26e perf(stats): ignore playback position-only changes 2026-10-06 21:59:17 +07:00
zarzet 42b428ca61 perf(widgets): skip unchanged playback state updates 2026-10-06 21:58:57 +07:00
zarzet 5de3f0469b perf(network): reduce directory listing and connection allocations 2026-10-06 21:58:56 +07:00
zarzet 393c11104e perf(library): simplify unfiltered album queries 2026-10-06 21:58:55 +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 4d65b590e1 refactor(metadata): separate file save persistence from editor 2026-10-06 13:08:13 +07:00
zarzet d98ab4852d fix(library): distinguish unavailable storage from missing files 2026-10-06 13:08:12 +07:00
zarzet 450dc213a9 fix(player): retire deleted sources and stale SAF copies 2026-10-06 13:07:58 +07:00
zarzet 08e4f1b41d refactor(logging): isolate native log transport 2026-10-06 13:07:57 +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 e3126153e6 perf(artwork): reuse decoded covers and preserve in-flight cache writes 2026-10-05 17:53:19 +07:00
zarzet bf40ef8ebe fix(library): honor album artist filters in summary counts 2026-10-05 17:53:18 +07:00
zarzet 6d68ef00ab perf(autoplay): index listening history and reuse normalized metadata 2026-10-05 17:53:17 +07:00
zarzet 2e17963804 refactor(library): isolate schema, row mapping and queue queries
Repair lookup counts during schema migration and resolve local FTS matches through the base table.
2026-10-05 03:28:48 +07:00
zarzet f8f489a7d5 refactor(ffmpeg): split media operations and safely publish outputs 2026-10-05 03:28:26 +07:00
zarzet e77996ddbd refactor(metadata): separate editor state, autofill and artwork ownership 2026-10-05 03:28:14 +07:00
zarzet a363f5a459 refactor(playback): own configuration and dependencies per runtime 2026-10-05 02:31:47 +07:00
zarzet 5194344268 refactor(downloads): separate persistence, progress and feedback 2026-10-05 02:31:01 +07:00
zarzet 1abc45e2bf feat(playback): automate mute and headphone playback controls 2026-10-05 01:55:08 +07:00
zarzet 5c6a0390c2 fix(automix): diagnose crossfade fallback reasons 2026-10-04 04:51:32 +07:00
zarzet 0ec8c96269 feat(automix): add configurable duration and transition effects 2026-10-04 03:55:24 +07:00
zarzet 5f0577837d perf(widget): publish artwork only for installed consumers 2026-10-04 01:41:55 +07:00
zarzet 37a1db274a perf(analysis): bound disk cache and protect active bundles 2026-10-04 01:41:37 +07:00
zarzet 2ac3220407 perf(network): share artwork by content hash 2026-10-04 01:41:36 +07:00
zarzet 27ed971782 perf(playback): resolve paths lazily and batch history cleanup 2026-10-04 01:41:35 +07:00
zarzet 0419b4485e perf(bridge): bound metadata cache and persisted JSON bytes 2026-10-04 01:40:56 +07:00
zarzet 541bfc4002 perf(media): shrink FFmpeg while preserving HTTPS motion artwork 2026-10-04 01:35:48 +07:00
zarzet f035538778 fix(library): expose failed scan files and reasons in app logs 2026-10-03 17:57:35 +07:00
zarzet 61708829fd fix(stats): show artwork for top artists 2026-10-03 17:15:49 +07:00
zarzet 6550104df9 chore(release): bump app version to 5.1.0 2026-10-03 16:12:01 +07:00
zarzet fb41a86f5a fix(library): match SAF documents across folder tree aliases 2026-10-03 13:40:39 +07:00
zarzet 983f1b26a5 feat(settings): default to built-in playback and word-synced lyrics 2026-10-03 13:40:39 +07:00
zarzet 84cac92983 feat(network): add SMB and WebDAV libraries with streaming and uploads 2026-10-03 04:27:47 +07:00
zarzet d0d85b0e0e fix(artwork): recover missing SAF covers after transient provider failures 2026-10-03 04:24:23 +07:00
zarzet cc3fe42df2 refactor(metadata): flatten track actions and remove similar songs 2026-10-03 03:26:35 +07:00
zarzet 0b2cf0e4e5 feat(discord): add opt-in mobile rich presence with track artwork 2026-10-03 02:14:11 +07:00
zarzet b767bd16d8 fix(playback): refresh notification favorite and shuffle controls 2026-10-03 02:14:01 +07:00