Repository navigation
fix: preserve the current deck when an older load finishes - #243
Conversation
Cross-binding parity checkThis is advisory only and does not block the PR. It looks at changed file paths, so it cannot tell a genuinely framework-specific change from a parity gap. If it is wrong here, just say so in a comment.
UI source changed in 4 of 5 bindingsChanged: React, Vue, Angular, Svelte. Not changed: Vanilla. If this is a new UI feature, it needs to land in all five. If it is a fix, please confirm in the PR description whether the other bindings have the same defect, and fix the ones that do. If the change really is framework-specific, say so and this note can be ignored. Binding UI changed with no framework-neutral e2e specSpecs in See the parity rule for what is expected. Missing: Vanilla. |
|
Looks good thanks for this. |
Switching from presentation A to B while A is resolving images or media lets A's successful load path replace B afterward. Any edits made in B can be discarded, and React clears the dirty flag and undo history.
Check cancellation again after asset resolution, before committing the loaded document. Keep React's media map local to the request until that check passes, and release uncommitted handlers and media URLs in
finally. Vue's signature parsing also completes before the guarded state update.Checked all five bindings. React, Vue, Angular, and Svelte reproduced the race and are fixed here. Vanilla already checks the token after its complete loading pipeline; its production code is unchanged, with the same regression cases added as a control.
Closes #242.
Validation
fc1d194312b85adb898f398497965d26aef967bf. Fixtures are real generated PPTX archives; only the timing of the actual asset read is controlled.file-backstage-open.spec.ts: 15 passed across all five demos using Chrome.bun run build,bun run typecheck,bun run lint, andbun run fmt:checkpassed.bun run test --maxWorkers=2: 40,869 passed, 234 skipped, and one failed test across the final package runs. React's existing random ID uniqueness test returned 4,999 unique IDs out of 5,000; its six-test file passed on rerun. The ID minter is unchanged. All new load regressions passed.