mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-03 04:38:33 +00:00
The DE parallel router auto-enables the interleaved parallel-streaming capture for the >=24GB macOS trial cohort. If a worker wedges mid-capture (a hung seek/screenshot at an early frame) the render made no frame progress yet sat until the per-frame CDP protocolTimeout (~5 min) fired before the pinned self-verify fallback could run — a silent multi-minute hang shipped to real users (report: stuck at frame 2/2031 for 6+ min, no fallback, until HF_DE_PARALLEL_ROUTER=false). Add a no-frame-progress watchdog to the parallel branch of runCaptureStreamingStage. It ticks off executeParallelCapture's progress callback; if no NEW frame lands within HF_DE_PARALLEL_STALL_MS (default 60s, well under protocolTimeout and >> the 15-32ms/frame budget), it aborts the reorder buffer (unsticking peer workers parked in waitForFrame so the pool doesn't deadlock) and aborts the pool via a SEPARATE controller linked to the parent abort. Because the parent abortSignal stays un-aborted, the orchestrator reads the failure as a generic capture_error (not a cancellation) and re-renders on the pinned screenshot path — the same fallback a verify failure already uses. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>