v1.4.1
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-afterduration before continuing, preventing dropped notifications during bursts of recovery events. -
Safer update extraction. The auto-updater now uses
execFileSyncinstead ofexecSyncfor the PowerShell extraction step, avoiding potential issues with special characters in file paths. -
Resilient state loading. Missing or corrupt fields in
state.jsonnow 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
infotodebug. -
Fixed TypeScript errors in test mocks. Added missing
twitchMismatchandtwitchRestartfields to test config mocks inrecovery.test.tsanddiscord.test.ts.