Changelog
Table of contents
- Version 3.5.0 (2026-03-06)
- Version 3.4.1 (2025-08-19)
- Version 3.4.0 (2025-07-23)
- Version 3.3.9 (2025-01-18)
- Version 3.3.8 (2025-01-14)
- Earlier Versions
Version 3.5.0 (2026-03-06)
Changed
- Major security/performance audit pass with a modularized content script (
src/split by concern) - Consolidated store validation and packaging scripts (
scripts/validate-store-package.js,scripts/package-for-store.js) - Settings persistence uses extension storage; removed remaining page-storage usage
Fixed
- Hardened message handling (sender verification) and sanitized worker/background error payloads
- Added finite fetch timeouts and TOCTOU re-validation for audio fetch flows
- Fixed multiple rendering correctness and performance issues (waveform batching, safe max scans, typed-array transfers)
Version 3.4.1 (2025-08-19)
Changed
- Vendored Just the Docs theme locally to remove remote build dependency
- Offline docs build now uses vendored theme, no network required
- Switched build scripts to deterministic target selector (
scripts/build-target.js) - Added REVIEWER-NOTES.md and repository-level STORE-SUBMISSION-CHECKLIST.md (moved off end-user docs site)
Fixed
- Synchronized inline comments in
src/content.jswith actual profile defaults - Updated various Memory Bank docs to match current code and build setup
Version 3.4.0 (2025-07-23)
Fixed
- Critical: Fixed audio CORS issue that prevented audio from being audible
- CORS Handling: Enhanced timing of crossOrigin attribute setting to occur before audio loading
- Error Recovery: Added fallback mechanisms for CORS failures with automatic retry
- MutationObserver: Fixed startup error when document.body doesn’t exist during early initialization
- Audio Loading: Improved detection of audio source URLs from both src attributes and source elements
Improved
- Early CORS Setup: Implemented dedicated early CORS observer to catch audio elements immediately upon creation
- Error Handling: Enhanced error logging for CORS-related audio loading failures
- Reliability: Added comprehensive error recovery for audio playback issues
Version 3.3.9 (2025-01-18)
Fixed
- Critical: Fixed persistent zoom error that caused infinite “X.has is not a function” console errors during zoom operations
- Critical: Added missing
has()method to ViewportCache class to enable proper cache checking - Critical: Fixed spectrogram not loading automatically on page load by forcing audio metadata loading
- Performance: Fixed duplicate spectrogram rendering causing performance issues during profile changes
- Stability: Fixed viewport cache null reference errors during zoom operations
- State Management: Fixed currentSettings undefined errors that prevented spectrogram rendering
- Variable Scoping: Eliminated duplicate variable names across different scopes to prevent conflicts
Improved
- Performance: Enhanced memory management with proper AudioContext cleanup and buffer pooling
- Caching: Improved viewport cache implementation with LRU eviction and memory monitoring
- Error Handling: Added comprehensive error reporting and graceful degradation for unsupported browser features
- Code Quality: Standardized coding conventions and added proper null checks throughout codebase
- Security: Implemented input validation, XSS prevention, and rate limiting for API calls
Technical
- Added defensive initialization checks for all cache objects
- Improved state management with centralized StateManager class
- Enhanced progressive rendering with cancellation tokens to prevent race conditions
- Added proper cleanup for event listeners and audio instances
Version 3.3.8 (2025-01-14)
Added
- Cross-platform clean script for Windows and Linux development environments
- Mel-scale frequency rendering mode for perceptual frequency scaling
- Updated Bird and Cetaceans profiles to use mel scale by default
Fixed
- Windows compatibility issues with npm run clean command
- Replaced rimraf with custom Node.js clean script
Earlier Versions
Earlier version history is available upon request.