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