Commit Graph
171 Commits
Author SHA1 Message Date
zarzet 49c3c66f15 fix(metadata): preserve Track fields during enrichment
Apply resolved metadata with copyWith and retain the existing field precedence. Keep UPC, preview URLs, and source-only fields when enrichment updates other tags.

Extract the pure merge helpers and add regression tests for field preservation.
2026-09-06 14:03:49 +07:00
zarzet 099e211f5a fix(conversion): reserve FLAC outputs without overwriting files
Reuse the conversion output lifecycle for M4A conversion and native FLAC suffix correction. Reserve destination names atomically, reject empty output, and clean partial files while preserving the input on failure.

Add regressions for existing outputs, concurrent conversions, staging, and cleanup.
2026-09-06 14:03:49 +07:00
zarzet 62ef538690 perf(library): page missing-file cleanup with safe SAF batch checks 2026-09-06 02:34:49 +07:00
zarzet ffe088f831 perf(artwork): batch and throttle cached preview validation 2026-09-06 02:34:49 +07:00
zarzet ab21de45c1 perf(library): reuse collection lookups across selection rebuilds 2026-09-06 02:34:49 +07:00
zarzet 7b87a8ee15 perf(search): decode large extension results off the UI isolate 2026-09-06 02:34:49 +07:00
zarzet 856139f908 fix(search): let latest live queries supersede cancelled requests 2026-09-06 02:34:49 +07:00
zarzet d95d070565 perf(library): stream normalized scan timestamp snapshots 2026-09-06 02:34:49 +07:00
zarzet 3368cf8c5d perf(cache): enforce cover byte budget during foreground use 2026-09-06 02:33:43 +07:00
zarzet dae509078e perf(queue): apply sparse progress updates with chunked snapshots 2026-09-06 02:33:42 +07:00
zarzet 1d0bb56f9b perf(images): size decoded covers from layout constraints 2026-09-06 02:33:42 +07:00
zarzet 2ef2beb621 fix(ui): resolve collapsed header title overlap 2026-09-04 23:58:14 +07:00
zarzet 958b79ebca fix(ui): improve adaptive phone and tablet layouts 2026-09-04 23:44:43 +07:00
zarzet 514081fc6a fix(cover): preserve provider high-resolution artwork 2026-09-04 19:48:15 +07:00
zarzet 448a3426a0 fix(extensions): shorten verification timeout 2026-09-04 17:01:06 +07:00
zarzet 15ffb3abf5 feat(metadata): add safe batch editing and matching 2026-09-04 16:55:44 +07:00
zarzet cbeada208b feat(library): add bulk duplicate cleanup 2026-09-04 12:39:03 +07:00
zarzet 7be959e7e9 fix(extensions): preserve verification callback retries 2026-09-04 12:39:03 +07:00
zarzet 4aba2926f8 fix(conversion): preserve Unicode SAF document names 2026-09-04 12:39:03 +07:00
zarzet a1ee346f2f chore(logging): sanitize diagnostics and reduce noise 2026-08-31 01:49:49 +07:00
zarzet 897fb7d523 feat(backup): stream versioned ZIP archives 2026-08-30 23:19:09 +07:00
zarzet 2c9881944d feat(updater): resume and verify APK downloads 2026-08-30 23:19:00 +07:00
zarzet bd07d5c233 perf(import): batch playlist metadata enrichment 2026-08-30 23:18:38 +07:00
zarzet 29a86b0dc3 feat(player): add sleep timer 2026-08-30 17:23:16 +07:00
zarzet 7141ca980f fix(library): sync track playback controls 2026-08-30 00:43:13 +07:00
zarzet f1fb01604d perf(download): reduce progress wakeups and harden retries 2026-08-29 23:47:58 +07:00
zarzet 5dac33dfa4 fix(download): preserve finalization metadata and library labels 2026-08-29 00:31:25 +07:00
zarzet 686cc25395 fix(library): prevent pinch gesture blocking scroll 2026-08-28 19:57:40 +07:00
zarzet 357190757c fix(database): cache unavailable FTS5 capability 2026-08-28 18:47:54 +07:00
zarzet 887a8ede12 feat(metadata): limit embedded cover resolution 2026-08-28 13:21:05 +07:00
zarzet 45d9bbd7b2 perf: harden download and persistence lifecycle 2026-08-28 12:51:03 +07:00
zarzet 51f61c9c95 fix(audio-analysis): avoid spectrogram splice noise 2026-08-28 01:48:52 +07:00
zarzet 433f8ed685 perf: reduce queue and extension runtime overhead 2026-08-28 01:47:51 +07:00
zarzet a744514e10 fix(library): recover transient file availability 2026-08-28 01:04:04 +07:00
zarzet 847fc725b6 fix(analysis): reject false spectral rolloff cutoffs 2026-08-28 00:33:55 +07:00
zarzet 933a3c49e2 fix(library): persist artwork previews and stabilize completion 2026-08-27 21:42:38 +07:00
zarzet fca8e46412 fix(library): show play action for completed batch items 2026-08-27 17:04:58 +07:00
zarzet 2b117415ae feat: add file format library quality label 2026-08-27 16:50:46 +07:00
zarzet 4609e59806 fix(library): show play actions during batch downloads 2026-08-27 13:56:48 +07:00
zarzet 47deb9f34e fix(extensions): resume metadata after verification 2026-08-27 13:08:44 +07:00
zarzet 4fa0ab860b chore(deps): upgrade Flutter Go and Android dependencies 2026-08-27 10:42:14 +07:00
zarzet 1a7c20111a feat(library): add lyrics filtering and metadata actions 2026-08-27 01:44:06 +07:00
zarzet 04c42bd511 perf(downloads): bound native queue state 2026-08-27 00:17:25 +07:00
zarzet 747dea886c fix(runtime): bound resources and quarantine stalled extensions 2026-08-26 21:09:05 +07:00
zarzet 0e3fca9967 perf(downloads): stream concurrent native queue work 2026-08-26 18:37:56 +07:00
zarzet 73051a5feb fix(player): smooth timed lyrics highlighting 2026-08-23 15:06:46 +07:00
zarzet c6437d8428 feat(library): add bit depth quality label mode 2026-08-23 11:42:47 +07:00
zarzet aec7bf7a1b fix(library): show complete quality labels 2026-08-23 11:36:15 +07:00
zarzet 818f1d3a10 fix(analysis): reject false low spectral cutoffs 2026-08-23 11:07:59 +07:00
zarzet c9cf26fea6 fix(ui): align explicit badges with track titles 2026-08-23 01:13:10 +07:00