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
4ba3ab2fc7
perf(library): optimize CIFS scan recovery
2026-09-01 12:00:37 +07:00
zarzet
0d148113f0
perf(library): resume and parallelize SAF indexing
2026-09-01 02:14:15 +07:00
zarzet
01fc7ee6c2
feat(lyrics): use direct Kugou, QQ Music, and Genius sources
2026-08-31 13:39:18 +07:00
zarzet
a1ee346f2f
chore(logging): sanitize diagnostics and reduce noise
2026-08-31 01:49:49 +07:00
zarzet
8f17cd1682
fix(backup): use compact sflb file extension
2026-08-30 23:34:57 +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
91b2de8175
perf(playback): stream SAF tracks through descriptor leases
2026-08-30 23:18:03 +07:00
zarzet
2e0a5f7b9c
fix(downloads): hide unknown byte totals in notifications
2026-08-30 18:58:19 +07:00
zarzet
892d152e5c
fix(resolver): retire unavailable resolver endpoints
2026-08-30 18:51:20 +07:00
zarzet
29a86b0dc3
feat(player): add sleep timer
2026-08-30 17:23:16 +07:00
zarzet
a926a2825b
fix(player): handle headset media controls
2026-08-30 17:04:41 +07:00
zarzet
d0a9868c2d
feat(resolver): add cross-platform fallback chain
2026-08-30 16:55:16 +07:00
zarzet
e9bb3ae303
feat(l10n): merge Crowdin translation updates ( #531 )
...
Merge Crowdin changes per key so translations from PR #531 are retained without dropping localization keys added on main. Normalize locale filenames for Flutter, keep incomplete languages behind the 70% production threshold, and retain them in Crowdin for continued translation.
2026-08-30 12:59:48 +07:00
zarzet
e931d5e2b0
refactor(core): reduce generated and duplicate code
2026-08-30 11:57:47 +07:00
zarzet
7141ca980f
fix(library): sync track playback controls
2026-08-30 00:43:13 +07:00
zarzet
d5465e9768
fix(download): throttle progress diagnostics
2026-08-30 00:17:27 +07:00
zarzet
b4c4214336
chore(release): bump version to 4.9.5
2026-08-30 00:04:57 +07:00
zarzet
f1fb01604d
perf(download): reduce progress wakeups and harden retries
2026-08-29 23:47:58 +07:00
zarzet
97fdc85513
fix(security): redact secrets from exported logs
2026-08-29 18:57:06 +07:00
zarzet
740ce173b2
fix(security): prevent extension network sandbox bypasses
2026-08-29 18:56:46 +07:00
zarzet
29db940d63
fix(security): encrypt extension storage at rest
2026-08-29 18:52:16 +07:00
zarzet
5dac33dfa4
fix(download): preserve finalization metadata and library labels
2026-08-29 00:31:25 +07:00
zarzet
c3b2214e2a
perf: optimize library scans and extension runtime
2026-08-28 21:00:11 +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