- Fixed the Firefox Add-ons publish command argument handling so AMO receives the listed-channel submission and matching source archive.
- Ensured failed AMO uploads still remove temporary source archives.
- GitHub release workflow
- Made Firefox Add-ons source review reproducible by committing Firefox manifest metadata and removing post-build manifest mutation from the publish flow.
- Hardened release packaging so Firefox builds and source archives are created from the same committed revision.
pnpm run build:mv2pnpm exec web-ext lint --source-dir dist/mv2pnpm test
- Added sniffer playlist removal from the popup UI.
- Hardened the dependency graph and removed stale package lock files.
pnpm testpnpm run build:all-variants
- Reduced muxing memory usage and preserved HLS byte ranges for CMAF/fMP4 playlists, addressing 0-byte saves and large-output failures reported in #522 and #523.
- Fixed release variant generation so no-blocklist MV2/MV3 archives are produced correctly.
- Made no-blocklist manifest generation compatible with current Node JSON module requirements.
- Added automated Firefox AMO submission support.
- Updated design-system dependency security patches.
pnpm testpnpm run build:all-variants
- Added an auto-delete-after-save option for completed downloads.
- Preserved embedded audio in muxed HLS streams.
- Sanitized generated download filenames to remove illegal characters.
- Improved native select colors in Firefox dark mode.
- Added the download queue.
- Added storage usage estimates and total storage reporting.
- Added sniffer video previews.
- Added conditional blocklist support with an opt-out build variant.
- Propagated fallback query parameters through playlist handling.
- Hardened storage management reliability and added integration coverage.
- Updated dependency security patches and pnpm override ranges.
- Subtitle downloads end-to-end: fetch VTT tracks, generate language-aware filenames, and mux into MKV when subtitles are present (
src/core/src/use-cases/download-subtitle-track.ts,src/background/src/services/ffmpeg-muxer.ts). - Richer audio and subtitle selection: parse default/autoselect/forced flags and group IDs, honor a preferred audio language, and persist per-playlist audio/subtitle choices while blocking downloads on unsupported encryption (
src/background/src/services/m3u8-parser.ts,src/core/src/store/slices/playlist-preferences-slice.ts,src/popup/src/modules/Playlist/PlaylistModule.tsx). - Sniffer gains direct URL entry and streamlined navigation (Direct tab removed); playlist UI shows metadata badges and quick copy buttons for track URLs (
src/popup/src/modules/Sniffer/SnifferView.tsx,src/popup/src/modules/Navbar/RouterView.tsx,src/popup/src/components/Metadata.tsx). - Job cards and About/Settings views refreshed with clearer status, hover/copy affordances, and Storybook scenarios seeded with realistic store state (
src/popup/src/modules/Job/JobView.tsx,src/popup/.storybook/preview.tsx).
- More robust muxing pipeline with offscreen document fallback for MV3 and safer bucket cleanup when generating download blobs (
src/background/src/services/indexedb-fs.ts,src/background/src/offscreen.ts).
- Vite/tooling upgrade (
vite@6.4.1,pnpm@10.11.0) and Storybook now runs from the popup package (package.json,src/popup/.storybook/main.ts). - CI/release workflow tweaks: fixed permissions for publishing/coverage, added coverage badge workflow, removed CodeQL (
.github/workflows). - Added feature overview doc and pruned planning docs (
FUNCTIONALITIES.md,plans/roadmap.md).
- Audio-only playlists are currently blocked from downloading because the playlist module requires a video level to mark media as available (
src/popup/src/modules/Playlist/PlaylistModule.tsx:174-177).
pnpm test
- Manifest V3 support for Chromium browsers using an offscreen document to create blob URLs in the service-worker background.
- Dual build pipeline with separate MV2 (Firefox/Chromium) and MV3 (Chromium) artifacts and clearer tester instructions.
- Ensure MV2 background bundles emit as
background.jsand package popup/background files into the root of the ZIP/XPI for direct installs.
- CI builds both MV2 and MV3 targets; release uploads MV2 Firefox/Chromium and MV3 Chromium artifacts.
- Added “For Dear Testers” guide for Firefox/Chromium reviewers and clarified MV3 Chromium-only caveat.
- Merge audio and video streams for complete media exports (#430) – addresses long‑standing “No Audio” reports (e.g. issue #23)
- Display toolbar icon immediately after playlist confirmation for quicker access (#431)
- New theme and redesigned About page (#432, #435)
- Major UI overhaul of sniffer, playlist, settings, and downloads pages (#437)
- Added Storybook scenarios covering core UI components (#438)
- Sniffer can copy playlist URLs directly (#443)
- Report link now opens via the browser Tabs API (#445)
- Hover tooltips and improved truncation keep long playlist names from hiding the Save button (#444) – resolves issues #342 & #343
- Normalized generated filenames and clearer save‑status feedback
- More reliable retry logic for failed requests
- Correct handling of map byte ranges and encrypted initialization segments (#442)
- Automatically selects appropriate playlist levels (#447)
- Security updates
- Added usage instructions and updated automation guidelines (#436)
- Vitest setup with broad coverage for core, popup, controller, and hook logic (#446, #448, #449, #452–455)
- Fetch-loader and crypto decryptor unit tests
- Coverage reporting with badge generation (#456)
- CI executes test suites automatically (#454)
- Build-system improvements and npm workspace migration (#428)
- Width for playlists and downloads cards
- Security updates
- Max width for playlists and downloads
- Security updates
- Direct downloads
- .ts as a file type (UI only)
- Security updates
- Security updates
- Videos are transformed to mp4 on the fly
- Using https://github.com/puemos/browser-extension-template
- Total new design
- Security updates
Big thanks to @mayfield!!
- FPS info
- Audio-only media support
- Improve retry backoff
- Security updates
- Download fail on Firefox
- Filter playlists
- SaveAs dialog Switch
- The extension will retry failed download attempts
- Yarn to NPM
- Paypal -> GitHub Sponsors
- Direct download
- Several UI fixes
- Unlimited Storage permission
- Use IndexedDB for storing chunks
- Downloads are separated as Jobs
- New empty status design
- Download progress UI
- Cancel a download
- #51 After deleting a download, the download page crashes
- Change copy button to use text
- Refactor the GitHub action to use chrome-webstore-upload-cli
- Auto save
- Use page title for the file name
- UI Enhancements
- Updated to the latest style-components
- New UI
- Updated to the latest create-react-app
- Use parcel to pack the background app
- Refactor the stories
- Auto-download playlist
- Upgrade dependencies
- AES decrypt
- Badge indicator update on tab remove
- Save as
- Badge indicator
- Update dependencies
- Update dependencies
- Rebranding
- Copy playlist URL link
- Storybook
- Colors and styles
- Wildcard for playlists
- Timestamps for sniffer & downloads
- Tabs style
- Playlist relative URI
- Scrollbars