Skip to content

docs(engine): ship the fast-capture-limitations.md every gate points at - #3880

Open
miga-heygen wants to merge 1 commit into
mainfrom
docs/fast-capture-limitations
Open

docs(engine): ship the fast-capture-limitations.md every gate points at#3880
miga-heygen wants to merge 1 commit into
mainfrom
docs/fast-capture-limitations

Conversation

@miga-heygen

Copy link
Copy Markdown
Contributor

Summary

PRINFRA-301 reported that detectCssEffectRisk's drop-shadow fallback (correctly, still) routes to screenshot capture with no shipped fast-capture-limitations.md doc. Investigation found the gap is broader than that one gate: drawElementService.ts, frameCapture.ts, compileStage.ts, fallbackCaptureProfile.ts, validate-fast-video.ts, and the fast-video CI workflow all cite docs/fast-capture-limitations.md — several by a specific Lim N number — but the file never existed anywhere in the repo, and even if it had, packages/engine's files field didn't ship a docs/ directory in the published npm package.

  • Add packages/engine/docs/fast-capture-limitations.md, covering every fallback gate currently in the engine (SwiftShader, video capture, unsupported CSS effects, 3D contexts, supersampling, clip-cut boundaries, the at-risk-timeline predictor) plus the operational requirements (Chrome build support, ffmpeg's psnr filter) and the per-frame recoverable-error fallback — cross-checked against the actual gate implementations, not just the doc pointers, so the limitation numbers match every existing Lim N citation.
  • Add "docs" to @hyperframes/engine's package.json files array so the doc actually publishes.
  • One incidental finding surfaced along the way, noted in the doc rather than fixed here since it touches CI semantics: .github/workflows/fast-video-validation.yml and validate-fast-video.ts's own comments ("fast capture cannot capture video on any platform yet") predate the Chrome-151 fix that removed the video-forces-screenshot gate, and haven't been re-validated since — likely stale, same flavor as the vault correction PRINFRA-301's repro already made for the drop-shadow-removed claim, but out of scope for this PR.

Test plan

  • New regression test (fastCaptureLimitationsDoc.test.ts) asserts the doc exists and still defines every limitation number cited by name elsewhere in the codebase — confirmed RED without the doc (isolated via tagged git stash), GREEN with it.
  • bunx vitest run packages/engine/src/services/fastCaptureLimitationsDoc.test.ts — 2/2 passed.
  • bunx tsc --noEmit -p packages/engine — clean.
  • bunx oxlint / bunx oxfmt --write — clean.
  • bunx fallow audit --base origin/main --fail-on-issues — clean (0 issues in 3 changed files).
  • Pre-commit hooks (lefthook: lint/format/fallow/typecheck/commitlint) all passed.

🤖 Generated with Claude Code

drawElementService.ts, frameCapture.ts, compileStage.ts,
fallbackCaptureProfile.ts, validate-fast-video.ts, and the fast-video CI
workflow all cite `docs/fast-capture-limitations.md` (several by specific
`Lim N` number) as the reference for why a composition falls back to
screenshot capture -- but the file never existed anywhere in the repo, so
every one of those pointers was dangling and nothing was ever shipped in
the published @hyperframes/engine package either.

Add packages/engine/docs/fast-capture-limitations.md covering every
fallback gate (SwiftShader, video capture, unsupported CSS effects, 3D
contexts, supersampling, clip-cut boundaries, the at-risk-timeline
predictor) plus the operational requirements and per-frame recoverable
errors, and add "docs" to the package's `files` so it actually publishes.

Add a regression test asserting the doc exists and still defines every
limitation number cited by name elsewhere in the codebase.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant