CHANGELOG

WHAT'S
CHANGED

Every release, every fix, every improvement — in one place.

CURRENT VERSION
v3.2.0
TOTAL RELEASES
5
SINCE
2025
TOTAL CHANGES
48
Home/Changelog
v3.2.0LATEST
RELEASE NOTES ↗

Seven-platform support, keyboard shortcut toggle, extension badge, universal presets, scoped MutationObserver, sync retry hardening, and multiple robustness fixes.

NEW
  • Seven platforms supported: YouTube, Reddit, X/Twitter, Twitch, Facebook, LinkedIn, and Kick — with per-site video detection and channel/account extraction.
  • Keyboard shortcut (Alt+Shift+R) to toggle the filter without opening the popup. Customizable via chrome://extensions/shortcuts.
  • Extension badge shows green "ON" when active — visible at a glance, auto-syncs across popup, shortcut, and content script.
  • Per-channel / per-source rules — set ALWAYS, ASK, or EXCLUDE for any YouTube channel, subreddit, X account, Twitch streamer, Facebook page, LinkedIn profile, or Kick creator.
  • Auto-detect clicky videos via title keyword matching (13 built-in topic categories) and real-time audio click frequency analysis.
  • Custom keyword input — add your own detection keywords from the popup.
IMPROVED
  • Presets (LIGHT / MED / HEAVY / NUKE) now visible for all three engines, not just EQ.
  • MutationObserver scoped to site-specific containers (e.g., YouTube #content, Reddit shreddit-app, X main) instead of document.body — reduces CPU overhead on heavy pages.
  • Settings sync retry hardened — stops retrying after 3 consecutive failures when chrome.storage.sync quota is exceeded, preventing infinite loops.
  • crossOrigin attribute only set on videos before loading (readyState 0) — prevents visible video restart on non-YouTube platforms.
  • Corrupted WASM/model cache in IndexedDB is now auto-cleared on compile failure so the next attempt re-fetches from the extension bundle.
  • State loaded exclusively from chrome.storage instead of per-origin localStorage — consistent state across all 7 platforms.
FIXED
  • sourceNode null-guard added to all three audio chain functions (EQ, RNNoise, DeepFilter) — prevents crash if video is detached during async connection.
  • Title detection guard expanded to all supported site names (reddit, twitch, facebook, linkedin, kick) — prevents false positives on homepage titles.
REMOVED
  • Feature request form removed from extension popup — moved to the website only.
v3.1.0
RELEASE NOTES ↗

Popup now works fully off YouTube/Reddit — download models, switch engines, and adjust intensity from any tab. Plus an in-popup update notifier.

NEW
  • All popup features (engine selection, intensity, power, model download/delete) now work on any browser tab — no YouTube or Reddit tab required.
  • Model download routes directly through the background service worker. Settings are stored in chrome.storage.local and synced to the content script on next YouTube or Reddit load.
  • In-popup update banner — checks GitHub releases on startup and shows a dismissible "v3.x.x available" notice when a newer version is found.
  • Status badge distinguishes OFFLINE (not on YouTube/Reddit, expected) from NO SCRIPT (on YouTube/Reddit but script not loaded).
IMPROVED
  • DeepFilterNet3 assets staged in chrome.storage.local are imported into IndexedDB automatically on next YouTube or Reddit load — no re-download needed.
  • After model download, progress bar shows "Model loaded!" then smoothly fades out after 5 seconds.
FIXED
  • Engine cards and intensity slider now retain their values when the popup is opened off YouTube/Reddit.
v3.0.0MAJOR
RELEASE NOTES ↗

Complete rewrite with three AI engines, gamified engine cards with animated stat bars, a technical docs site, and a roadmap page.

NEW
  • EQ Lite engine — multi-band notch filters targeting 1–6 kHz click frequencies with a dynamics compressor. Zero download, instant.
  • RNNoise engine — Mozilla's 150 KB recurrent neural network bundled in the extension. Catches fan hum, room noise, and typing sounds.
  • DeepFilterNet3 engine — state-of-the-art deep-learning noise suppressor (~2 MB one-time download). Maximum possible clarity.
  • Animated progress bars per engine card with plain-English labels (Reaction Speed, Noise Removal, Battery Friendly, Setup Effort).
  • Vertical stacked engine card layout — full-width bars with grid labels, replacing the cramped 3-column layout.
  • Bug report button in footer — opens a pre-filled mailto with engine, intensity, and browser info.
  • Dark/light theme toggle in popup.
  • Website: technical docs page (/docs) with sticky TOC and 9 deep-dive sections.
  • Website: roadmap page (/roadmap) with shipped/in-progress/planned/future grouping.
  • Content script injection button — appears when script is missing so users can recover without refreshing.
IMPROVED
  • CSP bypass architecture: background service worker proxies all CDN downloads, stores base64 in chrome.storage.local, content script decodes to IndexedDB.
  • Asset versioning — cached WASM and model are automatically evicted when CDN models change.
  • State persisted in both localStorage (YouTube page) and chrome.storage.local (cross-context).
v2.0.0
RELEASE NOTES ↗

Switched to Manifest v3. Added RNNoise ML engine as second option alongside the original EQ filters.

NEW
  • Manifest v3 service worker — replaces the MV2 background page.
  • RNNoise ML engine option added to the popup.
  • chrome.storage.local for settings — synced across all YouTube tabs.
IMPROVED
  • EQ filter gains now scale linearly with the intensity slider (0–100%).
  • Compressor threshold adapts with intensity — more aggressive at higher settings.
FIXED
  • Audio context sometimes stayed suspended after YouTube's autoplay policy fired.
  • Source node not released when navigating between YouTube videos.
v1.0.0
RELEASE NOTES ↗

Initial release. EQ-only noise filtering using multi-band notch filters targeting keyboard click frequencies.

NEW
  • Multi-band EQ targeting 1.4 kHz, 2.2 kHz, 3.5 kHz, 5 kHz, 7 kHz click resonances.
  • Dynamics compressor with 0.5 ms attack to catch click transients.
  • Intensity slider from 0–100%.
  • Power toggle with on/off state persisted in localStorage.
  • Auto-hooks into the YouTube video element via MutationObserver.
  • Reconnects after YouTube's client-side navigation.

OLDER HISTORY

Full commit history on GitHub.

Every change is documented in the git log.

VIEW COMMITS ↗