adikshan11 and Claude Opus 5.5
45b737455a
automation: a confined project can't show footage from outside the roots ( #2131 F-11, "Indirect reads")
...
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 >
2026-10-31 11:16:36 +05:30
Brandon Thomas and Claude Opus 5.5
fecf054e5f
M13.15: qa scenarios 1-4 (kinetic type, shape logo, compositing, tracking) and fixes
...
engine.batch + MCP batch tool; layer.newText/newShape name; prop.get evaluated
expression value; keys.select by path with errors; @uid paths; plain-JSON gradients;
addShapeItem/effect.apply return paths; unknown layers error; conform rescales
footage duration; render log name for [###]; render_frame transparent; clearer
mask errors; truncated groups in flat get_layer.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 12:09:41 -04:00
Brandon Thomas and Claude Opus 5.5
78cd313d3c
M14.4: scripting with an After Effects-style JavaScript object model
...
New crate effectcraft-script (L4): boa runtime with app/Project/CompItem/
Layer/PropertyGroup/Property/TextDocument/MarkerValue/RenderQueue/File
object model over engine commands (undoable, undo groups), AE match-name
table, file/network security gate. Entry points: script.run command,
File > Scripts > Run Script File (.jsx/.js), Window > Script Console,
effectcraft-cli script, MCP run_script. Engine: project.delete/duplicate,
prop.renameGroup/setGroupEnabled/removeGroup/duplicateGroup/moveGroup.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 22:13:09 -04:00
Brandon Thomas and Claude Opus 5.5
c672e03160
M14.1: MCP server + agent CLI
...
- crates/automation (L5, no egui): hand-rolled JSON-RPC 2.0 MCP server over
stdio (initialize, ping, tools/list, tools/call); headless backend (in-process
Session) and bridge backend (desktop control channel). Tools: list_commands,
execute_command, get_project/comp/layer, get/set_property, add_keyframe,
render_frame (inline PNG), open/save_project, undo/redo; bridge-only
screenshot, ui_* and raw control passthrough.
- effectcraft-cli: info, commands, exec, run, props, get, set, render-frame,
mcp [--bridge PORT]; --json, --project/--demo/--empty, --save/--save-as.
- engine: prop.get, layer.tree node paths + time, Session::resolve_comp,
render_rgba8, execute_checked (rejects unknown params, lists accepted keys).
- control channel: render.frame; engine.execute runs every engine command
directly (no dialogs, validated params).
- docs: control-protocol.md, agents.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-01 21:40:31 -04:00