[2.12.1] - 2026-09-13
Fixed
- AI Tools
execute()operation-gate parity withsupplyData()(issue #46).execute()'seffectiveOpspreviously filtered the UI-selectedoperationsonly on the write-op gate, whilesupplyData()'senabledOperationsalso required the op to be registered in the resource'sconfig.ops. Both paths now derive the effective set from one shared pure helper (filterEnabledOperationsinai-tools/resource-config.ts), so a saved workflow re-pointed at a resource that no longer registers an op getsINVALID_OPERATIONfrom theexecute()path instead of the op reaching the API — matching what thesupplyData()/LLM path always did.execute()'s acceptance set is a strict subset of before; no UI-legitimate selection changes behavior. Adds 6 regression tests.