github murtaza-nasir/speakr v0.9.7-alpha

7 hours ago

Release Notes - v0.9.7-alpha

A bug fix release addressing three issues reported against v0.9.6: stuttering MP3 playback in Chromium browsers, an unclickable first transcript segment, and failed recordings being skipped by the retention sweep. It is backwards compatible with the v0.9.x line and involves no database changes.

Bug Fixes

  • MP3s without a Xing/VBR header are repaired on upload (#325). MP3 files that lack a Xing/Info header force players to estimate duration from bitrate, which causes stuttering, jumpy playback in Chromium-based browsers. Speakr now detects this condition on upload, using the same signal ffmpeg itself reports ("Estimating duration from bitrate"), and repairs the file with a lossless in-place remux. No re-encoding takes place, so the audio is bit-identical and the repair takes a fraction of a second; metadata is preserved. Healthy MP3s are left completely untouched. The repair covers regular uploads, the auto-process folder, and reprocessing.

  • The first transcript segment can be clicked again (#326). A segment starting at exactly 0 seconds was dropped by a falsy-value check (0 is falsy in JavaScript), which made the first segment unclickable for seeking and excluded it from playback highlighting. Timestamps are now read with nullish coalescing so a legitimate 0 survives. The same pattern existed on the public share page, where clicking such a segment produced a failed seek; that is fixed as well, along with segment render keys there that regenerated on every render for a 0 timestamp. Thanks to @checkmeck for the analysis and patches.

  • Failed recordings are included in auto-deletion (#328). The retention sweep only ever evaluated completed recordings, so a recording whose processing failed was kept forever regardless of the retention policy. Failed recordings now age out like completed ones: in audio_only mode their audio file is removed while the entry stays visible, and in full_recording mode the record is deleted entirely. Recordings that are still queued or processing are deliberately excluded, so an in-flight backlog can never be swept mid-work.

Compatibility

This release is backwards compatible with the v0.9.x line. There are no database migrations. Existing recordings, transcripts, and settings are unaffected. Note that if you use auto-deletion with DELETION_MODE=full_recording, previously failed recordings older than your retention window will begin to be cleaned up after upgrading.

Don't miss a new speakr release

NewReleases is sending notifications on new releases.