fix(windows): report supported preview surface as live#119
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (11)
📝 WalkthroughWalkthroughWindows preview now uses a proof-frame watchdog with tokenized ownership, bounded renderer reads, frame-history checks, and explicit pending/live/fallback supervisor states. Preview readiness gates and platform documentation now reflect first-frame and proof-surface requirements. ChangesPreview proof supervision
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint install failed: private package registry requires authentication. Disable ESLint in CodeRabbit settings or use public packages. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Problem
Windows intentionally presents preview through Videorc's Electron proof surface, but the main process unconditionally reported that presenter to the lifecycle supervisor as a fallback. Studio therefore showed Preview Is Using Fallback Rendering even after the supported Windows presenter was live.
The inverse edge matters too: a pending, never-first-frame, or stalled proof presenter must not be promoted to healthy merely because its BrowserWindow exists.
Plan and implementation
PreviewSurfaceStatusto the user-facing supervisor lifecycle.surface-liveonly after its first-frame contract ismet.starting-surfacewhile the first source frame/poller is pending.AGENTS.mdand ADR 0001: macOS remains CAMetalLayer-native, while Windows' currently supported production presenter is the uncompressed latest-wins BMP proof surface and must never be described as native.Acceptance criteria
surface-liveand clears the false fallback warning.starting-surface.Verification
pnpm smoke:recording-studiowas run; see Known gate blockers below.Known gate blockers
960x540instead of adopting portrait540x960. The identical failure reproduces from an untouched comparison branch and is outside this Windows supervisor-status change.Non-goals and follow-up
apps/desktop/src/main/index.ts; whichever lands second may need a focused rebase.Closes #115
Summary by CodeRabbit