mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-11-15 22:08:03 +00:00
Three fixes from PR #822 self-review: 1. Gate the "Software GPU detected" console.warn so it only fires when the guard actually changed the outcome. Previously the warn condition (captureMode==="screenshot" && isSoftwareRenderer && headlessShell && isLinux) was satisfied even when the caller had explicitly set forceScreenshot=true — misleading operators into thinking the guard kicked in when they had already picked screenshot mode. Add `!forceScreenshot` to the condition and one-shot the warn with a process-level latch to avoid spam across multi-worker renders. 2. Thread the already-resolved browserGpuMode from frameCapture.ts into acquireBrowser via a new AcquireBrowserOptions.resolvedBrowserGpuMode. The Promise cache made the duplicate resolution cheap, but threading the value removes the smell of two parallel resolutions of the same thing with no static guarantee they agree under future refactors. 3. Add fallback-launch-retry test: simulate probeBeginFrameSupport failure via a CDP mock whose `send` rejects, assert the second launch strips beginframe-only flags. Also add positive-control tests for "Linux + hardware + headless-shell does NOT warn" and "forceScreenshot suppresses the software-GPU warn". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>