fix(director): reconcile only stale layers on same-shot seeks

Compare declared visibility with the manager's effective intent, and treat
in-flight transitions as stale so a toggle or superseded LOAD rollback that
is still settling cannot slip past the check. Reconcile only those layers
inside the lightweight seek instead of rebuilding the shot, and report a
refusal without resetting the seek position or camera.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Alex O'NeillandClaude Opus 5.5 committed 2026-10-25 19:54:51 +00:00
1 parent 8553b3d5f7
commit b900fb8410
6 files changed
+115 -29

No files matched your search

+7 -2
View File
@@ -122,10 +122,15 @@ try {
const loaded = await director.loadShot(scene.id, scene.shots[0].id, {
flyDuration: 0.2,
});
await dataManager.setEnabled(layerId, false, { origin: 'user' });
const disabled =
(await dataManager.setEnabled(layerId, false, { origin: 'user' })) &&
!dataManager.layers.get(layerId).enabled;
const sought = await director.seekScene(scene.id, 0.5);
return (
loaded?.started && sought && dataManager.layers.get(layerId).enabled
loaded?.started &&
disabled &&
sought &&
dataManager.layers.get(layerId).enabled
);
} finally {
director.stopScene();