mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-08 17:06:15 -08:00
* fix(playback): harden embedded MPV polling loop and IPC error visibility The 500ms session polling interval called refreshSession() unguarded: a throwing addon call (getAddon/getSessionSnapshot) escaped the interval callback as an uncaughtException in the main process on every tick. Wrap each refresh in try-catch, log the first failure only, and resume session updates once the addon recovers. Embedded MPV IPC handlers also forwarded service calls without any error handling, unlike every other events module. The renderer swallows these rejections by design (guardIpc), so addon errors were completely invisible. Route all registrations through a wrapper that logs the failing channel in the main process before rethrowing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(playback): track poll-failure log suppression per session A healthy session in the same poll tick reset the shared pollFailureLogged flag before the failing session was processed, so a mixed healthy/failing session set logged the failure on every 500ms tick — the flooding the flag was meant to prevent. Track logged failures per session id instead and clean entries up on dispose. Addresses Greptile/Codex review feedback on #1041. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: 4gray <fourgray@proton.me> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>