Skip to content

fix(core): keep video layers aligned during preview scrubbing - #7346

Open
jrusso1020 wants to merge 4 commits into
mainfrom
fix/preview-scrub-video-readiness
Open

jrusso1020 wants to merge 4 commits into
mainfrom
fix/preview-scrub-video-readiness

Conversation

@jrusso1020

Copy link
Copy Markdown
Collaborator

What

Studio scrubbing keeps the last complete picture visible until the requested video layers have decoded. A cold jump between stacked background and alpha-cutout clips no longer reveals captions over black or a cutout without its background.

Why

The preview paints GSAP and clip visibility synchronously while native video seeks finish independently. Moving across cuts can also release and reload media. Long source GOPs make that partial-picture interval visible.

Related work

Overlaps the scene-mounting path touched by #7342; this change coordinates media readiness during seeks rather than changing scene text.

How

  • Hold displayed transport-owned video frames in alpha-preserving canvases and keep graded output on the committed frame.
  • Serialize decoding and retain only the newest queued destination, then commit captions, visibility and videos together.
  • Keep the current scene mounted while destination scenes and media become ready. Rebuild readiness after scene changes and source reloads.
  • Release holds on play, render seek, stop-media and teardown; leave leased or host-controlled media alone. A stalled source has a bounded hold.

Test plan

  • Regression fails against the original seek implementation and passes with this change.
  • bun run build
  • bun run --cwd packages/core typecheck
  • bun run --cwd packages/core test:hyperframe-runtime-ci including 2,871 runtime tests, coverage, contract, seek, parity, security and linter gates.
  • Additional targeted tests after the final snapshot/grading extraction: 136 passed.
  • Isolated Chromium verification with a real stacked H.264/alpha-VP9 project: cold forward seek, backward seek and rapid cross-cut requests retain the previous picture and land with both visible videos ready at the latest target.
  • Documentation updated; lint and formatting checked.
  • Comments explain the frame-readiness and cleanup invariants.

The broad core run passed 5,886 tests and hit two unrelated macOS system-font discovery assertions in systemFontLocator.innerName.test.ts (installed Georgia/Zapfino fonts); those source and test files are unchanged. The dedicated runtime CI suite passes.

No application bundle, release, or user project was modified. Canary needs a build containing this change.

@mintlify

mintlify Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
hyperframes 🟢 Ready View Preview Nov 7, 2026, 7:04 AM

💡 Tip: Enable Automations to automatically generate PRs for you.

@github-actions

github-actions Bot commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

Edit accuracy: accurate 267 (base branch 267), smooth 107 of those

The gate passes.
Smoothness is reported in the artifact, not gated. A case fails only if it fails 2 of 3 runs.

Quarantined, measured but not gated (8)

This branch was successfully deployed

1 active deployment
staging - docs — 1aae19ae Deployed Nov 7, 2026 by mintlify[bot]
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