zarzet
a1ee346f2f
chore(logging): sanitize diagnostics and reduce noise
2026-08-31 01:49:49 +07:00
zarzet
887a8ede12
feat(metadata): limit embedded cover resolution
2026-08-28 13:21:05 +07:00
zarzet
1a7c20111a
feat(library): add lyrics filtering and metadata actions
2026-08-27 01:44:06 +07:00
zarzet
ea63291db8
refactor(metadata): move cover resolution to extensions
2026-08-19 13:12:29 +07:00
zarzet
4fef287a7b
feat(metadata): add download attribution to comments
2026-08-18 21:17:36 +07:00
zarzet
290923e88f
feat(tagging): write release identity tags
2026-08-18 19:04:26 +07:00
zarzet
48883d51d4
feat(extensions): preserve provider metadata
2026-08-18 12:28:35 +07:00
zarzet
cd9f43f5a0
fix(cover): preserve best max-quality candidate #511
2026-08-11 15:20:57 +07:00
zarzet
1e973d5ecb
style(dart): apply repository formatting
2026-07-29 14:14:42 +07:00
zarzet
e37f13275f
perf(embed): native-first tag writes and overlapped fetches in finalization
2026-07-14 14:55:59 +07:00
zarzet
c6e012b23d
fix(ui): fetch covers via the Go backend instead of raw HttpClient
...
Both call sites used a bare dart:io HttpClient with no timeout, retry, or
cache; downloadCoverToFile provides all three (plus the singleflight cover
cache) and can hang-proof the embed path.
2026-07-14 12:49:57 +07:00
zarzet
547e6493dd
perf(net): fetch embed covers once per release instead of per track
2026-07-14 09:10:01 +07:00
zarzet
2d52f3251e
refactor(queue): split download_queue_provider into concern part files
...
Pure move: paths, native worker, finalization, ReplayGain, and
metadata embedding move to part files as private extensions on
DownloadQueueNotifier; queue orchestration, state, and public API
stay in the main file (7598 -> 4022 lines).
2026-07-12 21:31:38 +07:00