Ships three versions together (the last published release was v1.32.0).
1.34.0 — collateral diff on governed page writes
Every other check in the write path asks "did my change land?". This one asks "did anything else change?" — the question Respira's builder-type guard exists for, where every known incident came from the writer's own serialiser retyping or emptying nodes the caller never addressed, with ids, order and stored text intact so nothing complained.
After a governed save, three forms of the page are compared: as stored before, what the tool asked for, and what persisted.
- Targets are derived, never declared. A node whose payload differs between before and asked is one the tool changed; no ability had to say so. A node's payload excludes its
elementschildren, so a targeted child does not make its ancestors look targeted. - Collateral = an untargeted node that
changed, wasretyped, orvanished. Comparing before against persisted keeps Elementor's save-time normalisation out of the verdict — the before tree already went through it. - Not landed = a setting the tool asked for that is absent afterwards (absence only; a value Elementor rewrote into its canonical shape is Elementor doing its job). Judged after this plugin's own prop coercion, so an advertised alias renamed onto its canonical property is never mistaken for a dropped setting.
- Default is
warn: the finding rides the run's existing warnings channel plus anelementor_mcp_governance_collateralaction.refuse— restore the pre-write snapshot and returngovernance_collateral_refused, telling the agent not to retry — is behind theemcp_collateral_guard_modefilter. No option, no admin toggle: anything other than the default is a deliberate, named decision by a site operator.
1.33.1 — Angie bridge SDK
@elementor/angie-sdk 1.5.0 → 1.7.3, bundle rebuilt. Upstream publishes no changelog past 1.0.x, so the delta was read from the tarballs; the one behaviour that changed for us is that refresh pings are now filtered per SDK instance.
Field-checked on a live site (WP 7.1, Elementor 4.2.4, Angie 1.1.16): the bridge registers within ~2–3 s (isAngieReady() true, empty queue, aura-design-engine: registered), serves its six read-only tools to the editor, and stays registered across opening, closing and reopening the Angie sidebar. The new per-instance filter behaves correctly in both directions — a ping belonging to another instance is ignored, an unstamped one is accepted. One observation about forced queue resets, which affects Angie's own first-party servers identically and is not reachable in normal use, is recorded in #69.
1.33.0 — bundled MCP Adapter
Adapter 0.4.1 → 0.6.1 together with its wordpress/php-mcp-schema runtime dependency, stricter input validation and fail-closed permission handling, and an explicit meta.mcp.public = false on every ability.