mirror of
https://github.com/storytold/effectcraft.git
synced 2026-11-01 16:21:43 +00:00
The command checks look at the paths an agent gives, but a project it opens or imports from a read root names its own footage, which was read wherever it is when the project rendered: render_frame returned its pixels. Backend::confine now wraps a headless session's footage and services: ConfinedFootage reads frames, audio, aux channels, models and vector frames only for footage inside the read roots (problem() says why the rest shows nothing), and ConfinedServices checks read_file, exists, stamp, list_dir and is_dir the same way. Writes are left to the command checks. Test: automation_roots_confine_the_footage_a_project_names covers an absolute path, `../`, a linked file and a linked folder, each opened and imported. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>