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