Skip to content

fix(cli): stop promising a universal per-time filmstrip for --layout strip - #3867

Merged
miguel-heygen merged 1 commit into
mainfrom
fix/keyframes-strip-help-text-clarify
Sep 11, 2026
Merged

fix(cli): stop promising a universal per-time filmstrip for --layout strip#3867
miguel-heygen merged 1 commit into
mainfrom
fix/keyframes-strip-help-text-clarify

Conversation

@miga-heygen

Copy link
Copy Markdown
Contributor

What

keyframes --shot --layout strip's help text, its type's inline doc comment, and the CLI reference docs all described strip as an unqualified "filmstrip by time." The tool doesn't actually do that for the overwhelmingly common case.

Why

A real per-time pixel filmstrip is only produced when the sampled selector is an SVG element (gated by an internal shape check — typeof element.getBBox === "function" && typeof element.getScreenCTM === "function"). Any other selector — including every nested sub-composition host, which is always a <div data-composition-src> — silently falls back to one live screenshot plus vector position markers instead.

This isn't a capture bug: for a non-SVG selector, real per-time pixel compositing was never implemented, only 3D bbox/marker sampling. But the documented behavior over-promised what the tool does, so a user following the docs on the common case (a DOM/sub-composition selector) sees root captions and empty image boxes where they expected the nested composition's actual content to move across frames — the diagnostic strip is misleading, even though the real render is correct.

How

Reworded all three descriptions (CLI help text, ShotOptions.layout TSDoc, and the reference docs table) to state the SVG-only condition and the DOM/sub-composition fallback explicitly. No behavior changed — this is a documentation-accuracy fix, per the ticket's own framing that a doc-only fix fully resolves the reported symptom (a silent, misleading omission) for a P3.

Testing

Added a test asserting the CLI help text no longer makes the unqualified "filmstrip by time" claim and does disclose the SVG-only condition — guards against a future regression back to the misleading wording. Verified RED (fails against the pre-fix string) and GREEN (passes after the fix) via a local before/after comparison.

  • bunx vitest run src/commands/keyframes.test.ts src/commands/motionShotLayout.test.ts — 46/46 passing
  • bunx tsc --noEmit in packages/cli — clean
  • bunx oxlint / bunx oxfmt --write on changed files — clean
  • Full CLI suite (excluding known-broken-in-sandbox browser-launch tests, unrelated to this change): 217 test files / 3025 tests passing

🤖 Generated with Claude Code

…strip

`keyframes --shot --layout strip`'s help text, its type's inline doc
comment, and the CLI reference docs all described 'strip' as an
unqualified "filmstrip by time". In reality a real per-time pixel
filmstrip is only produced when the sampled selector is an SVG element
(gated by an internal SVG-shape check); any other selector — including
every nested sub-composition host, which is always a
`<div data-composition-src>` — silently falls back to one live
screenshot plus vector position markers instead.

That's not a capture bug: for a non-SVG selector, per-time pixel
compositing was never implemented, only true 3D bbox/marker sampling.
But the documented behavior over-promised what the tool does for the
overwhelmingly common case (a DOM/sub-composition selector), so a user
following the docs sees root captions and empty image boxes where they
expected the nested composition's actual content to move across frames.

Reworded all three descriptions to state the SVG-only condition and the
DOM/sub-composition fallback explicitly. No behavior changed.

Adds a test asserting the CLI help text no longer makes the unqualified
claim and does disclose the SVG-only condition, to catch a future
regression back to the misleading wording.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@mintlify

mintlify Bot commented Sep 11, 2026

Copy link
Copy Markdown

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

Project Status Preview Updated
hyperframes 🟢 Ready View Preview Sep 11, 2026, 3:06 AM

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

@miguel-heygen
miguel-heygen merged commit bafc7b4 into main Sep 11, 2026
52 checks passed
@miguel-heygen
miguel-heygen deleted the fix/keyframes-strip-help-text-clarify branch September 11, 2026 03:22
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.

2 participants