Skip to content

[2/7] Check the edit before encoding and fail on placeholders - #225

Open
dazzatronus wants to merge 2 commits into
derk/export-1-blobfrom
derk/export-2-checks
Open

dazzatronus wants to merge 2 commits into
derk/export-1-blobfrom
derk/export-2-checks

Conversation

@dazzatronus

@dazzatronus dazzatronus commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

A host can only fall back to a cloud render if the export tells it the browser can't draw the edit faithfully. The exporter encoded whatever was on the canvas: grey placeholders for failed loads, the pending animation for prompt-only AI clips, unkeyed chroma key. Before encoding, it now checks the edit and the browser and rejects with phase unsupported and a list of issues (codes in the readme). During export, a clip still showing a placeholder, or a load still pending after 30 s, rejects with phase assets. String font weights are read the way RichTextPlayer reads them, so weight: "bold" doesn't raise a false font issue.

About 550 lines, more than half tests: one per issue code.

# PR Adds Why separate
1 #224 exportBlob as the export engine The new API
2 (this PR) #225 Pre-flight issues; fail on placeholders Routing depends on it
3 #226 Off-screen frames Stops the page jumping
4 #227 Clip speed in frames and audio Its own fix
5 #228 Size and bitrate from the edit Its own fix
6 #229 Refuse or correct the remaining wrong exports Found in the whole-stack review
7 #230 Release 2.25.0 Mechanical

Verify: npm run verify:ci; in a browser, a faithful edit exports in Safari and Firefox, and prompt-assets.json rejects with ai-pending and clip ids matching getEdit({ includeIds: true }).
Risk: export() refuses edits it used to encode best-effort; the changelog in [7/7] says so.

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