Skip to content

feat(cli): preserve page motion blur off in local renders - #6081

Merged
miguel-heygen merged 1 commit into
mainfrom
drefall/export-motion-blur
Oct 22, 2026
Merged

miguel-heygen merged 1 commit into
mainfrom
drefall/export-motion-blur

Conversation

@miguel-heygen

Copy link
Copy Markdown
Collaborator

The CLI cannot currently request the renderer's existing page motion blur override. Add hyperframes render --page-motion-blur off, preserve it through single, batch and Docker renders, and keep omission as the composition's authored behavior. Invalid values are rejected before render setup.

The override also becomes part of the segmented-resume identity. Changing blur settings captures fresh segments; repeating the same settings can still reuse them. Existing segment directories become cold cache.

Validation on Linux:

  • CLI regression tests: 196 passed on three consecutive runs. Before implementation, the new witnesses failed with 8 failures and 188 passes. Removing request forwarding deliberately produced the expected failure; restoring it passed all 196 again.
  • Segment identity tests: 13 passed on three consecutive runs. The new off/default separation witness failed before the fix.
  • Built CLI and producer. Type checks passed for core, Studio, CLI, producer and scripts. Changed-file lint/format, CLI process ownership and the new-issues fallow gate passed.
  • Actual Chrome render: the same authored-blur composition reports page blur off with the flag and on without it. Both outputs contain 12 frames at 30 fps. Decoded midpoint images show sharp versus blurred edges.
  • Actual segmented resume: changing to off captures fresh frames; repeating off reuses the segment and produces identical decoded frames.

Local commit hooks were skipped; the checks above ran on Linux. Docker forwarding is covered by argv tests, not a container render. Hosted cloud API forwarding and Desktop request production are separate follow-ups and are not implemented here.

@mintlify

mintlify Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

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

Project Status Preview Updated
hyperframes 🟢 Ready View Preview Oct 22, 2026, 7:11 PM

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

@github-actions

Copy link
Copy Markdown
Contributor

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

@jrusso1020 jrusso1020 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Reviewed at d6207ac. No blockers in the supported local-render scope.

If the flag is omitted it stays undefined, so a composition keeps its authored blur behaviour rather than having blur forced on everywhere. The validated plan forwards off through the existing paths:

  • single and batch render options;
  • Docker argv;
  • the producer's existing request, config, compile, probe and capture override.

Distributed and Lambda renders already turn page blur off in synthetic jobs and chunk capture. This PR doesn't add a hosted-cloud CLI flag or send the setting from Desktop.

Legacy cache tradeoff: every old segment directory goes cold, default renders included. The PR documents this; it does not preserve old caches. Comparing old and new hashes directly:

  • the legacy hash gives the same key for undefined and off;
  • the new hash gives them distinct keys.

The producer accepted off before this CLI flag existed, and legacy manifests don't record the setting. Reusing legacy keys blindly could therefore pick up segments rendered with an unknown blur mode. The one-time migration is justified, and renders whose settings don't change keep sharing a key afterwards.

Testing

  • 58 Docker-argv and segment-manifest tests pass, using current-source aliases and borrowed dependencies.
  • Six direct strict-parser controls pass.
  • The broader CLI suites couldn't collect locally, because core's generated runtime is missing.
  • Not run: Chrome output and resume pixels, Docker containers, and hosted renders.

Review by Rames (hf-review)

@miguel-heygen
miguel-heygen added this pull request to the merge queue Oct 22, 2026
Merged via the queue into main with commit 10c724b Oct 22, 2026
79 checks passed
@miguel-heygen
miguel-heygen deleted the drefall/export-motion-blur branch October 22, 2026 19:52

This branch was successfully deployed

1 active deployment
staging - docs — d6207ac2 Deployed Oct 22, 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.

2 participants