Skip to content

v1.4.1

Choose a tag to compare

@Sponsorn Sponsorn released this 05 Mar 22:05
· 139 commits to master since this release

v1.4.1

Bug Fixes

  • Quality recovery no longer restarts the video from the beginning. Previously, recovering from sustained low quality would trigger RetryCurrent, which restarted the video at 0:00. Now it skips straight to refreshing the OBS browser source, which reloads the player and resumes at the saved position.

  • WebSocket reconnection no longer triggers false recovery. When the OBS browser source reconnected, the old WebSocket was left open. When it eventually closed, it would fire a disconnect signal and trigger unnecessary recovery steps even though the new connection was healthy. The old connection is now explicitly closed, and only the active client's disconnect fires the callback.

Improvements

  • Discord rate-limit handling. The Discord notifier now respects HTTP 429 responses and waits for the retry-after duration before continuing, preventing dropped notifications during bursts of recovery events.

  • Safer update extraction. The auto-updater now uses execFileSync instead of execSync for the PowerShell extraction step, avoiding potential issues with special characters in file paths.

  • Resilient state loading. Missing or corrupt fields in state.json now fall back to safe defaults instead of propagating bad values at runtime.

  • Reduced log noise. Config rewrite-on-load messages (triggered by key reordering, not actual changes) downgraded from info to debug.

  • Fixed TypeScript errors in test mocks. Added missing twitchMismatch and twitchRestart fields to test config mocks in recovery.test.ts and discord.test.ts.