Fall back from a missing playblast without opening Storage (#180) #217

Merged
crowmaki merged 2 commits from issue-180-missing-playblast into main 2026-10-16 07:13:07 +00:00
Owner

Closes #180

What changed

  • Core: the Playblast scan now marks the kept Playblasts that went missing, and clears the mark on those that came back. It shares this step with Storage (sync_missing_playblasts). It records a Script change for each affected Scene, so the Shot's status, the previz panel and the Animatic fall back to the Shot's newest version that has a file.
  • App: the previz watcher also watches media/playblasts. When a file is deleted there, the scan runs once the folder settles. The core names the watched folders (playblast_watch_folders).
  • Animatic: while a Playblast's video fails to load, the stage shows the Board, not a black stage. When the cut is read again after the scan, it plays the older version.
  • CONTEXT.md: the Missing entry now says a Playblast that goes missing while the Project is open is found without opening Storage.

Tests

  • New integration test the_playblast_scan_notices_a_gone_playblast_without_storage. When the current Playblast is deleted, the dot (Mismatched → Current), the previz panel and the Animatic all fall back. When the file is restored, all three go back to the newer version.
  • cargo test --workspace, bun run test and bun run check pass.

Known limits

  • The dot and the panel can disagree for about 2 s after a deletion. The panel checks the disk at once, but the dot waits for the watcher's debounce.
  • No automated test covers the watcher → scan step or the Animatic's onerror fallback, because there is no harness for them. I did not check them by hand in the running app.
Closes #180 ## What changed - **Core:** the Playblast scan now marks the kept Playblasts that went missing, and clears the mark on those that came back. It shares this step with Storage (`sync_missing_playblasts`). It records a Script change for each affected Scene, so the Shot's status, the previz panel and the Animatic fall back to the Shot's newest version that has a file. - **App:** the previz watcher also watches `media/playblasts`. When a file is deleted there, the scan runs once the folder settles. The core names the watched folders (`playblast_watch_folders`). - **Animatic:** while a Playblast's video fails to load, the stage shows the Board, not a black stage. When the cut is read again after the scan, it plays the older version. - **CONTEXT.md:** the **Missing** entry now says a Playblast that goes missing while the Project is open is found without opening Storage. ## Tests - New integration test `the_playblast_scan_notices_a_gone_playblast_without_storage`. When the current Playblast is deleted, the dot (Mismatched → Current), the previz panel and the Animatic all fall back. When the file is restored, all three go back to the newer version. - `cargo test --workspace`, `bun run test` and `bun run check` pass. ## Known limits - The dot and the panel can disagree for about 2 s after a deletion. The panel checks the disk at once, but the dot waits for the watcher's debounce. - No automated test covers the watcher → scan step or the Animatic's `onerror` fallback, because there is no harness for them. I did not check them by hand in the running app.
The Playblast scan now marks kept Playblasts that went missing, and clears
the mark on those that came back, as Storage does. The app's previz watcher
also watches the playblasts folder, so deleting a current Playblast makes
the Shot's dot, previz panel and Animatic fall back to its newest version
with a file at once. The Animatic stage shows the Board while a Playblast
fails to load, instead of a black stage.
crowmaki deleted branch issue-180-missing-playblast 2026-10-16 07:13:07 +00:00
Sign in to join this conversation.
No description provided.