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
e149ee5358
fix(storage): publish finalized SAF output once
2026-08-26 18:37:15 +07:00
zarzet
778f58e6e4
fix(lints): await asynchronous work in guarded blocks
2026-08-26 18:35:21 +07:00
zarzet
7557ffbf85
fix(metadata): preserve explicit advisory across conversions
2026-08-22 23:24:56 +07:00
zarzet
19591bdf19
feat(metadata): show explicit badges in track titles
2026-08-22 23:08:40 +07:00
zarzet
75e1cf17b8
fix(home): clear recent activity permanently
2026-08-22 22:45:06 +07:00
zarzet
60624436a6
feat(library): support multiple storage folders
2026-08-22 11:15:42 +07:00
zarzet
89d39c4074
fix(metadata): show readable SAF file locations
2026-08-21 01:02:02 +07:00
zarzet
ea63291db8
refactor(metadata): move cover resolution to extensions
2026-08-19 13:12:29 +07:00
zarzet
bdb10a2ae6
chore(deps): update Flutter and Go dependencies
2026-08-19 11:59:28 +07:00
zarzet
a7423b7f89
feat(metadata): edit release tags and render UPC barcodes
2026-08-18 19:29:12 +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
7fc27e8314
perf(library): stream scans and optimize queue queries
2026-08-18 11:03:05 +07:00
zarzet
2e115308b7
feat(filename): add provider traceability tags
2026-08-17 20:51:27 +07:00
zarzet
6dbca64a80
perf(history): batch SAF orphan inspection #511
2026-08-11 16:50:35 +07:00
zarzet
bec9e33c94
feat(metadata): review batch tag enrichment #511
2026-08-11 16:40:06 +07:00
zarzet
28538395c2
fix(metadata): match by primary artist and review results #511
2026-08-11 16:20:03 +07:00
zarzet
e750c195ca
feat(search): save max-quality cover on long press #511
2026-08-11 16:01:39 +07:00
zarzet
5237aed25e
feat(download): add automatic lossy conversion
2026-08-11 15:19:45 +07:00
zarzet
a59c749089
fix(download): preserve SAF and defer background starts
2026-08-09 05:23:47 +07:00
zarzet
2612da81c3
fix(db): prevent concurrent startup locks
2026-08-08 00:01:00 +07:00
zarzet
7f4ace6d1b
feat(metadata): show current cover dimensions
2026-08-01 18:34:25 +07:00
zarzet
d4b617f49a
feat(metadata): add embedded cover resize options
2026-08-01 18:24:27 +07:00
zarzet
19753ca005
fix(database): make playback session migration idempotent
2026-08-01 17:39:45 +07:00
zarzet
b3bbe93c1e
fix(metadata): preserve WAV and AIFF tags
2026-08-01 15:33:20 +07:00
zarzet
5228b0030b
fix(player): restore lyrics after cold start
2026-07-30 13:48:05 +07:00
zarzet
04a8700a65
fix(player): restore playback position reliably
2026-07-29 21:03:11 +07:00
zarzet
24b9d7ba80
fix(player): preserve audio quality across track changes
2026-07-29 19:29:19 +07:00
zarzet
dbdbf0ca41
refactor(ui): standardize modal sheets
2026-07-29 17:10:42 +07:00
zarzet
1e973d5ecb
style(dart): apply repository formatting
2026-07-29 14:14:42 +07:00
zarzet
e7fbaf7b75
fix(download): suffix only colliding quality variants
2026-07-29 02:43:35 +07:00
zarzet
fb538e9517
feat(metadata): choose extension for online autofill
2026-07-28 15:18:10 +07:00
zarzet
7bf6f32802
fix(extensions): serialize verification callbacks
2026-07-28 14:09:06 +07:00
zarzet
7f277f7a88
fix(library): backfill local audio bitrates
2026-07-28 12:51:28 +07:00
zarzet
80d9d87870
perf(metadata): avoid SAF copies during quality probes
2026-07-28 01:50:41 +07:00
zarzet
26570792a9
fix(library): persist lossless bitrate metadata
2026-07-28 00:50:20 +07:00
zarzet
52b1147275
feat(library): add missing-ISRC metadata filter
2026-07-27 01:15:51 +07:00
zarzet
d0dca1a101
refactor(library): split row models and queue union SQL into part files
2026-07-27 00:32:42 +07:00
zarzet
cbee637501
perf(history): coalesce index bumps and batch per-row exists lookups
2026-07-26 22:25:04 +07:00
zarzet
97b87472fe
feat(metadata): manual MusicBrainz lookup in the tag editor
...
The Go MusicBrainz genre and album-artist ISRC lookups only ran
automatically at download time. The tag editor's auto-fill section
gains a Fetch from MusicBrainz button that bridges both exports in one
channel call (sparing the 1 req/s budget) and fills the fields as
editable suggestions; nothing is written until Save.
2026-07-26 19:21:32 +07:00
zarzet
8d077ae2da
feat(player): add repeat off/all/one modes
...
The internal player handles setRepeatMode: repeat-one replays the
current track, repeat-all wraps the queue (and keeps a single-track
shuffle queue alive). The mode is broadcast in playback state,
persisted with the playback session, and toggleable from the Now
Playing transport row and the up-next sheet; a small shuffle toggle
joins the transport row for symmetry.
2026-07-26 19:00:50 +07:00
zarzet
cb8064a317
refactor(dart): consolidate duplicated lookup, filename, and search-provider helpers
2026-07-26 18:52:26 +07:00
zarzet
50c8f0e454
refactor(ffmpeg): remove dead conversion cluster and speculative decryption fields
2026-07-26 18:44:08 +07:00
zarzet
97758908ca
refactor(library): drop unwired DB pagination providers
2026-07-26 18:44:06 +07:00
zarzet
04a71d0211
refactor: remove orphaned bridge, database, and queue helpers
2026-07-26 18:43:53 +07:00
zarzet
901fa34d80
refactor(bridge): remove dead cross-layer platform bridge methods
2026-07-26 18:32:40 +07:00