kv-music/js
gpulch cde7080052 fix: address code review feedback
Inline fixes:
- Remove TDRC frame from ID3 writer (ID3v2.3 uses TYER only, not TDRC)
- Add try/finally cleanup in worker to prevent VFS leaks on errors
- Fix Blob creation to use Uint8Array directly (avoid extra bytes)
- Replace loadFFmpeg race guard with promise singleton pattern
- Add -map_metadata -1 to strip source metadata (prevent duplicate ID3)

Error handling improvements:
- Create MP3EncodingError class with code property for reliable detection
- Update api.js to use instanceof check instead of string matching
- Pass AbortSignal to encodeToMp3 for proper cancellation support
- Remove error re-wrapping in mp3-encoder.js (preserve original errors)

Technical details:
- Promise singleton ensures FFmpeg loads once even with concurrent calls
- AbortSignal listener properly cleaned up on success/error/abort
- Virtual FS cleanup in finally block prevents file leaks
- MP3EncodingError.code = 'MP3_ENCODING_FAILED' for robust detection
2026-02-23 10:49:05 +01:00
..
accounts fix linting errors/warnings 2026-02-20 15:48:23 +01:00
desktop FIX: local files in desktop app 2026-02-18 21:33:34 +01:00
visualizers style: auto-fix linting issues 2026-02-21 10:35:52 +00:00
analytics.js Change instances.json in favour of Workers which have live API uptime 2026-02-21 14:56:55 +00:00
api.js fix: address code review feedback 2026-02-23 10:49:05 +01:00
app.js Shuffle full artist discography instead of artist radio 2026-02-22 00:57:42 +01:00
audio-context.js style: auto-fix linting issues 2026-02-20 23:07:15 +00:00
cache.js style: auto-fix linting issues 2026-01-16 20:37:51 +01:00
dash-downloader.js style: auto-fix linting issues 2026-01-25 10:00:12 +00:00
db.js style: auto-fix linting issues 2026-02-14 19:41:08 +00:00
downloads.js style: auto-fix linting issues 2026-02-21 23:33:29 +00:00
equalizer.js EQ changes 2026-02-17 20:22:47 +00:00
events.js Change instances.json in favour of Workers which have live API uptime 2026-02-21 14:56:55 +00:00
id3-writer.js fix: address code review feedback 2026-02-23 10:49:05 +01:00
lastfm.js WIP: trying to fix neutralino linux 2026-02-14 00:46:31 +01:00
librefm.js WIP: trying to fix neutralino linux 2026-02-14 00:46:31 +01:00
listenbrainz.js scrobbling and skeleton changes 2026-02-08 22:36:07 +00:00
lyrics.js style: auto-fix linting issues 2026-02-16 18:20:50 +00:00
maloja.js scrobbling and skeleton changes 2026-02-08 22:36:07 +00:00
md5.js fix: resolve all yarn lint errors 2026-02-15 21:53:00 +00:00
metadata.js feat: add MP3 320kbps download option with ffmpeg.wasm 2026-02-22 19:13:03 +01:00
mp3-encoder.js fix: address code review feedback 2026-02-23 10:49:05 +01:00
mp3-encoder.worker.js fix: address code review feedback 2026-02-23 10:49:05 +01:00
multi-scrobbler.js more scrobbling sources 2026-02-05 10:25:04 +00:00
music-api.js feat(search): search recs in queue 2026-02-21 02:30:03 +03:00
player.js style: auto-fix linting issues 2026-02-21 19:58:57 +00:00
playlist-generator.js Add multi-disc ZIP folders and fix playlist extension paths 2026-02-22 00:32:45 +01:00
playlist-importer.js fix linting errors/warnings 2026-02-20 15:48:23 +01:00
profile.js fix linting errors/warnings 2026-02-20 15:48:23 +01:00
qobuz-api.js fix: prevent home page double refresh and improve artist name extraction in album cards 2026-02-21 14:17:46 +01:00
router.js feat(social): profiles feature 2026-02-19 16:54:58 +03:00
settings.js Add multi-disc ZIP folders and fix playlist extension paths 2026-02-22 00:32:45 +01:00
side-panel.js JSPF playlist imports + plausible 2026-02-15 16:30:54 +00:00
smooth-scrolling.js remove dead apis, search in settings, playbar dragging 2026-02-05 20:42:15 +00:00
storage.js Add multi-disc ZIP folders and fix playlist extension paths 2026-02-22 00:32:45 +01:00
tracker.js improve qobuz functionality 2026-02-12 09:44:35 +00:00
ui-interactions.js fix: resolve persistent labels 2026-02-21 23:42:45 +01:00
ui.js fix: prevent home page double refresh and improve artist name extraction in album cards 2026-02-21 14:17:46 +01:00
utils.js feat: add MP3 320kbps download option with ffmpeg.wasm 2026-02-22 19:13:03 +01:00
vibrant-color.js js fixes 2026-01-11 00:58:55 +01:00
visualizer.js style: auto-fix linting issues 2026-02-20 23:07:15 +00:00
waveform.js FIX: try to fix application volume control on linux 2026-02-13 21:02:00 +01:00