daa334a947
AudioPlayer.ts: route seeks below bufferStart to seekBeyondBuffer; previous missing lower-bound caused clamped playback after first seek. WaveformSeeker: fire OnSeekStart/OnSeekChange before capturePointer await to prevent fast-click race that locked _isSeeking true. Latent: WavOffsetService encodes remaining-only DataSize, overwriting JS this.duration after seek — not fixed here, scope separately.