- feat(taglib): updated audio buffer handling in metadata.js to use Uint8Array.
- feat(taglib): refactored addMetadataToAudio to support return type as Blob or Uint8Array
- feat(taglib): add timeout functionality to metadata functions
- Introduced `withTimeout` utility function to handle operation timeouts.
- Updated `addMetadataWithTagLib` to use `withTimeout` for promise resolution.
- Updated `getMetadataWithTagLib` to use `withTimeout` for promise resolution.
- Added default timeout parameter to both metadata functions.
- feat(taglib): improve metadata handling with ChunkedByteVectorStream
- Enhanced metadata handling in taglib.ts and taglib.worker.ts to utilize ChunkedByteVectorStream.
- fix(taglib): handle metadata addition failure gracefully
- Updated `addMetadataWithTagLib` to catch errors and return original audio data if metadata addition fails.
fix(downloads): return original blob if metadata addition fails
- Wrap addMetadataToAudio call in try-catch to handle errors.
feat(taglib): add direct calling of taglib methods
- Introduced `direct` parameter to `addMetadataWithTagLib` and `getMetadataWithTagLib` functions for direct processing in the current thread.
- Exported taglib worker functions.
- Introduced `readableStreamIterator` to convert ReadableStream into async iterable.
- Updated `LosslessAPI` to utilize `readableStreamIterator` for handling response body.
- Modified `ZipNeutralinoWriter` to use `readableStreamIterator` for reading chunks.
- #322: Fullscreen overlay padding and main-view scrollable so volume stays above taskbar when Up next is shown
- #313: Settings tab content constrained on small displays with max-width, min-width, overflow-x
- #278: HEAD request before GET for download to get Content-Length for progress bar; resolveDownloadTotalBytes in downloadProgressUtils.js
- Improved progress tracking in FFmpeg worker by extracting total duration and current time from logs.
- Updated downloadTrackBlob function to use console logging for progress updates.
- Enhanced error handling and progress reporting during audio encoding.
taglib supports multiple media formats beyond what was previously supported, this would enable transcoding to other formats without needing to write additional metadata libraries.