mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-11-04 21:17:30 +00:00
On the disk path a transient worker death is deliberately non-fatal: the orchestrator's adaptive retry re-captures that worker's missing frames. The streaming path has no per-worker retry and the dead worker's frames are gone, yet it inherited the same gating — so its peers parked in the ordered writer waiting for a frame that would never come, and sixty seconds later the no-progress watchdog relabelled the death as a stall. That is the `stuck at k/N` field signature. isPoolFatalWorkerFailure splits the two: every non-cancelled failure ends a streaming pool, and a new onWorkerFailure hook delivers the ORIGINAL failure to the caller before peers are aborted, so the ordered writer can be released with it rather than with a stall. Mutation-checked in both directions, including that `cancelled` never propagates (the pool is already aborting). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>