Skip to content

Render real clips in a nightly end-to-end check#115

Merged
nmbrthirteen merged 6 commits into
audit-7-onboardingfrom
audit-8-nightly
Jul 14, 2026
Merged

Render real clips in a nightly end-to-end check#115
nmbrthirteen merged 6 commits into
audit-7-onboardingfrom
audit-8-nightly

Conversation

@nmbrthirteen

Copy link
Copy Markdown
Owner

CI only ran unit tests, so nothing in the pipeline ever produced a clip. A
change could break rendering for every user and still go green: a recent
TypeScript upgrade would have done exactly that.

The harness builds a synthetic source, drives the real pipeline, and asserts
the artifact: streams, duration against the requested range, and framing. It
runs per caption style on all three platforms.

Part of the product audit. Stacked on audit-7-onboarding, so review only this PR's diff and merge in order.

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 547ff6d5-871c-477f-b06a-59742c6f6e9c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch audit-8-nightly

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

CI only ran unit tests, so nothing in the pipeline ever produced a clip. A
change could break rendering for every user and still go green: a recent
TypeScript upgrade would have done exactly that.

The harness builds a synthetic source, drives the real pipeline, and asserts
the artifact: streams, duration against the requested range, and framing. It
runs per caption style on all three platforms.
Every assertion in the e2e check ran on the container, not the picture:
a path came back, the file was over 20KB, it had both streams, the
duration was right, the frame was taller than it was wide. Deleting the
words so the caption stage never runs, and Remotion is never invoked,
printed seven `ok` lines and exited 0. The one regression the check
exists to catch was the one it could not see.

Render the clip twice now, with words and without, and diff the frames.
Captions sit in the bottom half in all four styles, so the caption band
must differ from the caption-free render on every sampled frame while
the top of the frame stays put. Measured coverage of that band is
1.4-11.9% across the styles against a 0.4% floor, and 0.0% when the
words are removed.

Also: crop with the product's default `speaker` strategy so YuNet and
the reframing path are exercised instead of the center-crop shortcut,
cap the job at 45 minutes so a hung headless Chrome cannot sit on a
runner for six hours, and upload the rendered clips and sampled frames
when the job goes red.
@nmbrthirteen
nmbrthirteen merged commit 8af280b into audit-7-onboarding Jul 14, 2026
14 checks passed
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