# wavesurfer.js 8.0.0-beta.3 - Product: wavesurfer.js (https://whatsnew.fyi/product/wavesurfer-js) - Vendor: katspaugh - Date: 2026-08-21 - Version: 8.0.0-beta.3 - Original notes: https://github.com/katspaugh/wavesurfer.js/releases/tag/8.0.0-beta.3 - Permalink: https://whatsnew.fyi/product/wavesurfer-js/releases/8.0.0-beta.3 - Labels: Pre-release What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **fixed** — defer early media seeks until canplay in Player - **fixed** — exclude paused time from duration in Record - **fixed** — hold the last point's volume instead of dividing by a zero time span in Envelope - **fixed** — wrong payload in timeupdate after pausing playback in WebAudio - **changed** — refactor Post-refactor cleanup - **changed** — unify Spectrogram and fix GC leak with Scope lint enforcement - **changed** — implement definePlugin with functional plugin API with scope-owned teardown - **changed** — implement declarative load and viewport with per-load Scope, loadPhase/visibleRange signals, pure canvas plan, and FrameScheduler - **fixed** — fix leak issues across core and plugins with Scope/signal foundation * 8.0.0-beta.3 * fix(Player): defer early media seeks until canplay (#4353) by @aribradshaw * fix(Record): exclude paused time from duration (#4352) by @aribradshaw * fix(Envelope): hold the last point's volume instead of dividing by a zero time span (#4350) by @Jaybhade * fix(WebAudio): wrong payload in timeupdate after pausing playback (#4348) by @Copilot * docs: Fix Digital Ocean badge link formatting * docs: Add DigitalOcean badge to README * 8.0.0-beta.2 * chore: remove internal planning artifacts (docs/ is gitignored) * refactor: Post-refactor cleanup (#4346) * refactor: Spectrogram unification + GC leak harness + Scope lint enforcement (#4344) * docs: add digital ocean referral link * refactor: definePlugin: functional plugin API with scope-owned teardown; six plugins ported (#4342) * Declarative load & viewport: per-load Scope, loadPhase/visibleRange signals, pure canvas plan, FrameScheduler (#4341) * fix: Leak fixes across core and plugins + Scope/signal foundation (#4340) --- [![npm](https://img.shields.io/npm/v/wavesurfer.js)](https://www.npmjs.com/package/wavesurfer.js/v/8.0.0-beta.3)