You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Summary
New:elementor_add_widget MCP tool — first structural-write Elementor tool. Curated path covers 11 widget types (container, heading, text-editor, button, image, image-box, icon-box, icon-list, video, divider, spacer) with flat params; raw path accepts any registered widget type plus a full settings object. Containers nest children inline; atomic V4 widgets pass through opaquely. Curated video host-detects YouTube/Vimeo/Dailymotion; curated icon-list auto-generates repeater _ids. Cap-gated via edit_post.
Hardening:elementor_add_widget validates widget_type against Elementor's widget registry — rejects unknown slugs at the boundary instead of serializing typos into _elementor_data as silent empty placeholders. Atomic V4 prefixes (a-* / e-*) pass through opaquely; fails open if the registry is unreachable.
Hardening: Capability check order in six integration tool wrappers (GuardPress, SiteVault, ForgeCache, Royal Ledger, ACF, Royal Links) — cap check now fires BEFORE the "X is not active" check. Pre-1.4.30 a Subscriber-tier OAuth Bearer hitting an inactive integration received the "not active" error path, leaking integration presence. Per-handler object-level caps remain unchanged.