Skip to content

fix: Remotion ports keep box sizes, the manifest hook runs after format, a drag test stops flaking - #6392

Merged
miguel-heygen merged 5 commits into
mainfrom
feat/remotion-skill-border-box
Oct 26, 2026
Merged

miguel-heygen merged 5 commits into
mainfrom
feat/remotion-skill-border-box

Conversation

@miguel-heygen

@miguel-heygen miguel-heygen commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Three small fixes in one PR (each is under the 100-line floor alone). They are independent; the commits are separate.

1. A Remotion port keeps its bordered boxes at their size

Remotion's render page sets * { box-sizing: border-box }, so a width there already includes the border and padding. A browser's own default is content-box, so a port without the rule draws every bordered or padded element larger. A box with width:200px; height:100px; padding:20px; border:10px solid measures 200x100 with the rule and 260x160 without, in Chrome.

  • SKILL.md step 2 tells the port to put * { box-sizing: border-box; } once in the root index.html <style>; references/api-map.md has the row and an example.
  • The three corpus ports carry the rule once in their root <style>.
  • skills/remotion-to-hyperframes/scripts/tests/boxSizing.test.mjs goes red if a corpus root loses the rule (3 pass, 1 fail with the tier-1 rule removed).
  • Not re-measured: the corpus fixtures' SSIM thresholds (needs a Remotion install). The rule only brings the ported side closer to Remotion's.

2. The commit hook hashes the skills manifest after the formatter has run

pre-commit ran format and skills-manifest in parallel, so the manifest could be hashed from a skill document the formatter was about to reflow; CI's "Skills: manifest in sync" then failed (this is what happened to the first version of this PR). They are now a piped group, format first; every other job is still parallel. commands: became jobs: because lefthook only has groups under jobs.

  • Scratch commits of a skill doc the formatter reflows: old order, manifest out of sync after 6 of 6; new order, in sync after 3 of 3.
  • scripts/lefthook-order.test.mjs (in test:scripts) fails on the old file ("skills-manifest must sit in a group") and passes on this one.

3. The edit accuracy drag case stops failing at random

seqheldtwice-tlhold-px-r0-nested-z100 failed now and then with pressJump 312.29 and tracking about 120. When a press lands while the previous save is in flight, Studio queues the drag, shows a "press waiting" marker where the box is meant to be, and replays the drag when the save lands; the element itself sits at its base position until then. The bench's drag step took its baseline from the bare element, so it read 312 px (the move's own vector) off. A user cannot see it: with the marker counted, the painted frames show the move continuous at 0.07 px.

  • The drag step's baseline is now the shown box (marker's quad while a press waits, else the element), one function measureShown shared with the drag measurement. The press still lands with the earlier save in flight.
  • Before: 6 failures in 37 runs, all pressJump 312.29. After: 30 of 30 pass the gate's verdict, pressJump at most 0.11.
  • settle.test.mjs covers measureShown (red if the marker is ignored).

@heygengenesis heygengenesis Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: REQUEST CHANGES · 1 blocker · 0 important · 0 nits · head 7df9ab55

  • blocker — the committed skills-manifest.json hash for remotion-to-hyperframes (cf320d781a133445) doesn't match the skill's contents at this head, so CI's required Skills: manifest in sync job fails. I reproduced it on a clean checkout with gen-skills-manifest.ts --check, which wants 37ed4536305b3c64, and main hasn't touched this skill since the merge base, so the drift comes from this branch. Run bun run --cwd packages/cli gen:skills-manifest and commit the result.
Scope

I confirmed the premise: Remotion's packages/core/src/default-css.ts sets * { box-sizing: border-box }. Sub-compositions are inlined <template>s, not shadow DOM, so one root rule reaches scene-2's bordered .stat-card. boxSizing.test.mjs passes locally (4/4) and the test:skills glob picks it up. I didn't re-run the corpus SSIM, as the PR body says.

@miguel-heygen

Copy link
Copy Markdown
Collaborator Author

Fixed at 35375eb: the manifest hash for remotion-to-hyperframes is now 37ed4536305b3c64, the value the check wanted. Cause: the commit hook's format pass reflowed api-map.md after the manifest was generated, so the hash I committed was of the unformatted file. gen-skills-manifest.ts --check passes on this head.

@heygengenesis heygengenesis Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE — 1 resolved, 0 open, 0 new · 7df9ab55 → 35375eb3 (only skills-manifest.json changed, to the hash --check expected; Skills: manifest in sync and Test: skills are green, as is the rest of CI)

@miguel-heygen
miguel-heygen added this pull request to the merge queue Oct 26, 2026
@miguel-heygen
miguel-heygen removed this pull request from the merge queue due to a manual request Oct 26, 2026
@miguel-heygen
miguel-heygen force-pushed the feat/remotion-skill-border-box branch from 35375eb to 1b2cee7 Compare October 26, 2026 05:38
@miguel-heygen miguel-heygen changed the title feat(skills): a Remotion port carries Remotion's box-sizing rule so bordered boxes keep their size fix: Remotion ports keep box sizes, the manifest hook runs after format, a drag test stops flaking Oct 26, 2026

@heygengenesis heygengenesis Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: REQUEST CHANGES · 1 blocker · 0 important · 0 nits · head 1b2cee72

The box-sizing and manifest commits are unchanged from the head I approved. The piped format → skills-manifest group passes lefthook validate on 2.1.4, and lefthook-order.test.mjs is wired into test:scripts. The one blocker is in the drag-bench change, inline at sequences.mjs:277.

Comment thread packages/studio/tests/e2e/edit-accuracy/sequences.mjs Outdated
@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Edit accuracy: accurate 271 (base branch 271), smooth 129 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 (0)

Unstable (2)

  • seqplainkeys-none-px-r0-nested-z100: tracking 0.07, pressJump 0, drop 0, reload 0, render 0.03, renderKey -, undo false, teleport true / tracking 0.07, pressJump 0, drop 0, reload 0, render 0.03, renderKey -, undo true, teleport true / tracking 0.07, pressJump 0, drop 0, reload 0, render 0.03, renderKey -, undo true, teleport true
  • seqplainkeys-none-pct-r0-nested-z100: tracking 0.05, pressJump 0, drop 0, reload 0, render 0.02, renderKey -, undo false, teleport true / tracking 0.05, pressJump 0, drop 0, reload 0, render 0.02, renderKey -, undo true, teleport true / tracking 0.05, pressJump 0, drop 0, reload 0, render 0.02, renderKey -, undo true, teleport true

@miguel-heygen

Copy link
Copy Markdown
Collaborator Author

Fixed at 6018d37 as suggested: the waiting marker is set on the selection overlay (previewGestureStarts.ts boxRef), so it belongs to the selected element; another element is now read bare until it is selected, and the marker-aware read is used only when the element is already selected. Ran the ab, held and inflight sequence cases (14 cases) 3 times on a 2-CPU Linux box: no verdict changed against baseline.json.

@heygengenesis heygengenesis Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE — 1 resolved, 0 open, 0 new · 1b2cee72 → 6018d373

@miguel-heygen
miguel-heygen added this pull request to the merge queue Oct 26, 2026
Merged via the queue into main with commit 603f421 Oct 26, 2026
73 checks passed
@miguel-heygen
miguel-heygen deleted the feat/remotion-skill-border-box branch October 26, 2026 07:37
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