zarzet
ed51b5d6ea
revert: remove download size estimates
2026-09-06 22:17:23 +07:00
zarzet
c6195bcd10
feat(download): estimate file sizes in quality picker
2026-09-06 21:40:25 +07:00
zarzet
bfffb8da11
fix(replaygain): write and verify native Opus gain tags
...
Preserve audio and artwork while replacing conflicting Opus gain tags with R128 comments. Verify manual, download, and album writes, handle SAF failures, and refresh playback normalization after saving.
2026-09-06 21:03:57 +07:00
zarzet
0acdd6d0b0
fix(metadata): match recording IDs across inconsistent catalogs
2026-09-06 20:28:15 +07:00
zarzet
56dc9ceb0d
fix(metadata): normalize artist credits and preserve recording versions
2026-09-06 19:23:06 +07:00
zarzet
90da359e58
fix(download): prepare fallback sessions before availability checks
2026-09-06 17:50:25 +07:00
zarzet
781661798b
fix: restore SAF metadata fallback and preserve active transfers
...
Propagate filesystem errors from complete metadata reads so Android retries unreadable SAF descriptors through temporary files while accepting valid audio without tags.
Keep established segmented and chunked transfers outside the resolution allowance. Continue charging initial requests, retries, and progress callbacks, including during parallel native reads, while preserving stall cancellation.
Add metadata, transfer, and native fallback regression tests. Validated with Go tests, race detector, vet, Android tests, targeted Flutter tests, analyzer, and formatting checks.
2026-09-06 16:43:24 +07:00
zarzet
717e8967cd
fix(download): preserve verification provider during fallback
2026-09-06 16:39:19 +07:00
zarzet
70a2a92558
fix: resolve backend and test analyzer diagnostics
2026-09-06 16:14:57 +07:00
zarzet
4fc837b94c
fix(extensions): preserve verification on availability errors
2026-09-06 16:03:29 +07:00
zarzet
0e71003e12
test: decouple app fixtures from extension identities
2026-09-06 16:03:11 +07:00
zarzet
8daae638f6
fix(extensions): bound stream resolution without timing out active transfers
2026-09-06 14:44:54 +07:00
zarzet
d725e11abc
fix(download): preserve audio quality across provider fallback
2026-09-06 14:44:54 +07:00
zarzet
1d96521c0f
fix(lyrics): align usability checks with shared fixtures
...
Trim after removing inline timestamps before matching speaker prefixes in Dart. Run one 21-case usability corpus through Dart, Go, and Kotlin tests.
Document the shared fixture and trigger Dart and Go CI when its resources change.
2026-09-06 14:05:09 +07:00
zarzet
b32bdbc291
perf(metadata): read complete SAF tags through descriptors
...
Add complete metadata reads with a display-name hint in Go and both native bridges. Read seekable SAF descriptors directly and use temporary copies only when direct reading fails.
Add format parity tests for MP3, FLAC, M4A, and WAV plus a Dart bridge hint regression.
2026-09-06 14:04:04 +07:00
zarzet
4a7908cf4f
perf(mp3): share bounded ID3 metadata and cover reads
...
Parse tags and artwork with one bounded frame walker and use a combined MP3 scan on cold cover caches. Skip artwork for tag-only reads and skip further pictures after finding a usable cover. Preserve earlier fields when trailing frames are malformed.
Cover ID3 versions, extended headers, unsynchronization, malformed data, and large artwork with byte-read assertions.
2026-09-06 14:04:04 +07:00
zarzet
90d3a5e3de
perf(extensions): clone only the requested storage value
2026-09-06 02:34:49 +07:00
zarzet
fdb4a0eaa5
fix(auth): preserve shared signed-session challenge identity
2026-09-06 02:33:42 +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
55da453913
fix(audio): preserve Opus codec in M4A scans
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
0d148113f0
perf(library): resume and parallelize SAF indexing
2026-09-01 02:14:15 +07:00
zarzet
5eb7f9a872
fix(build): hide unexported lyrics search results from gomobile
2026-08-31 16:45:32 +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
b18def64d3
perf(lyrics): coalesce and persist provider results
2026-08-30 23:18:51 +07:00
zarzet
aecba736e1
perf(metadata): coalesce MusicBrainz ISRC lookups
2026-08-30 23:18:33 +07:00
zarzet
6f95bf6085
perf(store): coalesce and condition registry requests
2026-08-30 23:18:21 +07:00
zarzet
0edd0f8f04
perf(extensions): refresh provider health off the download path
2026-08-30 23:18:12 +07:00
zarzet
892d152e5c
fix(resolver): retire unavailable resolver endpoints
2026-08-30 18:51:20 +07:00
zarzet
d2325dbcbf
chore(deps): update Flutter and Go packages
2026-08-30 18:25:59 +07:00
zarzet
d0a9868c2d
feat(resolver): add cross-platform fallback chain
2026-08-30 16:55:16 +07:00
zarzet
e931d5e2b0
refactor(core): reduce generated and duplicate code
2026-08-30 11:57:47 +07:00
zarzet
f1fb01604d
perf(download): reduce progress wakeups and harden retries
2026-08-29 23:47:58 +07:00
zarzet
fd74240c24
perf(extensions): coalesce signed session lifecycle
2026-08-29 23:47:34 +07:00
zarzet
bb1be4fdb4
perf(extensions): streamline prepared download work
2026-08-29 23:47:21 +07:00
zarzet
f21f47b2bd
perf(network): improve connection fallback and reuse
2026-08-29 23:47:04 +07:00
zarzet
0394a1bfcc
build(go): update toolchain to 1.26.6
2026-08-29 18:57:31 +07:00
zarzet
97fdc85513
fix(security): redact secrets from exported logs
2026-08-29 18:57:06 +07:00
zarzet
7556d93e80
fix(security): bound cover download memory usage
2026-08-29 18:56:56 +07:00
zarzet
740ce173b2
fix(security): prevent extension network sandbox bypasses
2026-08-29 18:56:46 +07:00
zarzet
8988f99f79
fix(security): sandbox extension FFmpeg execution
2026-08-29 18:53:52 +07:00
zarzet
63d29d2ed4
fix(security): validate extension callback state
2026-08-29 18:53:33 +07:00
zarzet
29db940d63
fix(security): encrypt extension storage at rest
2026-08-29 18:52:16 +07:00
zarzet
cab1af1828
fix(download): restore reliable provider fallback retries
2026-08-29 03:19:38 +07:00
zarzet
c3b2214e2a
perf: optimize library scans and extension runtime
2026-08-28 21:00:11 +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
433f8ed685
perf: reduce queue and extension runtime overhead
2026-08-28 01:47:51 +07:00