mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-14 19:26:51 -04:00
Untrusted sessions (MCP, the control channel) checked only the top-level command and the steps of `actions.play`. Any other command that runs commands internally ran them unchecked, so the allowed `file.automate.conditionalModeChange` could run `image.mode.*`, which the desktop gate denies because it resolves the user's configured colour profiles. `Session::dispatch` now applies `Session::authorize` to every command before any side effect, nested ones included, which closes the class rather than this one command. Sessions without a gate (local UI, `photocraft-cli run`) are unchanged.