Plugin 7.0.1MCP Server 6.11.4WooCommerce Addon 2.0.2 May 8, 2026 Major · Cumulative Tested with WordPress 7.0 RC2

Respira for WordPress 7.0
Bloom

Every adapter to deeper-intelligence parity.

Self-Heal v6.11 was the cracks-of-gold. Bloom v7.0 is the seven flowers, one per builder. Render-validation, universal trace, Variables CRUD, source-driven catalog, per-property validators: five cross-cutting invariants every adapter inherits, so the silent-fail family bugs that defined the v6.10.x cycle stop repeating across builders.

7.0

Ready for the WordPress 7.0 release window

Functionally compatible with WordPress 7.0 RC2: 133 abilities register cleanly, zero deprecation or warning during init, the canonical REST surfaces respond on every running localhost env. The PHP 8.1+ gate is removed so WebMCP boots on PHP 7.4 / 8.0 sites. The composer abilities-api constraint accepts 0.4 / 0.5 / 1.0 so the plugin tracks the version core ships with at GA. The too-early-call guard returns a structured 425 instead of silent-empty when wp_get_abilities() runs before init.

The Abilities API in 7.0 is a real signal that core is taking AI editing seriously. Bloom works alongside the API, not against it. Source: our WP 7.0 stance.

7 builders blooming every adapter to deeper-intelligence parity
5 cross-cutting invariants render-validation, trace, variables, catalog scan, validators
342 foundation assertions standalone tests across the 7 phase A items
0 breaking changes cumulative roll-forward from v6.11

Seven flowers

Every adapter to deeper-intelligence parity

One vase per builder. Each adapter inherits the cross-cutting Phase A invariants and ships its own first-slice deeper-intelligence work in v7.0, with the rest of each track sequenced into v7.0.x point releases.

Bricks

Inject paper cuts closed; element-name validator with did-you-mean shipped in v6.11.0; _cssGlobalClasses surfaced as a first-class property on every element schema

Stakeholder: A Bricks template author

Divi

Runtime-aware emit branching closes the silent-empty-render arc on Divi 4 sites; D5-shaped payloads downconvert to et_pb_* shortcodes when the site runs Divi 4

Stakeholder: A Divi 5 calibration trial

Elementor Atomic

$$type envelope-preserving writer for atomic v4 widgets; round-trip preserves the typed prop-type contract instead of overwriting it with a bare string

Stakeholder: An Elementor v4 trial running migrated Variables + Global Classes

Oxygen

CSS regen force-load fixes the silent-empty-render arc; component primitive auto-catalog 7 → 42+ entries via filesystem scan

Stakeholder: An Oxygen Classic 4.9 trial customer

Beaver Builder

content_field_map 7 → 50 modules including PowerPack and Beaver Themer prefixes; Box-first design framework support

Stakeholder: A Beaver Pro agency adopting Box-module-first design

Breakdance

Widget shortcut map 20 → 70 entries covering every shipping EssentialElements element; render-fidelity F3 + F4 closed in v6.11.3

Stakeholder: A Breakdance pro-services integrator

WPBakery

Builder-slug aliasing (vc / js_composer / visual-composer all route correctly); catalog auto-scan 1 → 87 vc_* shortcodes via filesystem

Stakeholder: Recruiting production volunteer sites pre-tag

Cross-cutting Phase A

Five invariants every adapter inherits

The Phase 5 foundation. Each shipped as its own alpha (alpha.1 through alpha.7) with standalone test coverage and per-builder integration. 342 passing assertions across the seven foundation files.

Render-validation gate

Post-write check on every adapter: HEAD-fetch the preview URL plus parser-walk the persisted blob using the parser the adapter declares (9 parsers ship). Either failing surfaces partial_write=true with structured parser_error / preview_error so REST callers can flag a write that landed but may not render.

Universal write-trace contract

Every adapter exposes build_write_trace($overrides) which returns the canonical response envelope: route, target, path_resolved, validator_warnings, render_validator_pass, partial_write, parser_error, preview_status, preview_response_ms, css_regen_strategy. Per-builder strategy declarations cover Bricks (bricks_generate_css_file_hook), Elementor (elementor_meta_only), Beaver (beaver_delete_asset_cache), Breakdance (breakdance_clear_static_cache), Divi (divi5_clear_and_warm / divi4_clear_and_warm), Oxygen (oxygen_vsb_force_cache_regen).

Variables CRUD endpoint shape

Universal contract for /respira/v1/builder/{builder}/variables/{type} across color, typography, spacing, breakpoints. Five REST routes (GET list, POST create, GET read, PATCH update, DELETE). A single Figma-to-builder pipeline can now operate without per-adapter URL knowledge. Adapters opt in via supports_variables() override.

Per-builder catalog auto-scan from source

Replaces hand-curated module registries with first-use filesystem scans. Each adapter declares its source dir and a per-file extractor; Respira_Module_Catalog_Scanner walks, runs the extractor, and caches the discovered catalog for 1 hour. WPBakery and Oxygen ship concrete scanners in v7.0; the rest follow in v7.0.x.

Per-property typed validators

12 canonical type slugs (color / dimension / url / integer / number / boolean / string / enum / font_family / image_url / svg / class_list) with type-specific opts. Closes the data-vs-render gap shape from the v6.10.x family bugs: pre-Bloom values that looked valid at write time but mismatched the renderer slipped through; the byte-level verify confirmed persistence; the page silently rendered wrong. Bloom centralises type checks into one vocabulary every adapter speaks at write time.

Arcs

Family-bug arcs that drove the release

Four independent customer trials surfaced bugs that share a shape: API returns success: true while persistence is wrong for the version on the site. Bloom names the pattern and ships fixes as a class.

The 8-release Oxygen empty-render arc

A trial customer running Oxygen Classic 4.9.6 spent two months reporting fresh respira_build_page calls produced postmeta blobs that looked structurally correct but rendered as a blank section between the active theme's header and footer. v6.8.3 fixed the prefixed-meta-key migration. v6.10.1 fixed a malformed -0 selector. v6.10.3 + v6.10.4 fixed a double-nested ct_options shape. v6.11.0 allocated integer ct_ids instead of string GUIDs. The empty render persisted into v6.11.2.

Fix. Bloom Phase B Oxygen 3.8.b: oxygen_vsb_cache_page_update is declared inside files Oxygen only includes on admin_init. REST writes happen before admin_init, so the function was undefined and the cache regen silently skipped on every Respira write, not just on the reporting site. The fix walks include locations and require_once's any that exist before invoking, so the per-page CSS file actually regenerates after every write.

Divi 4 silent-empty render

A 34-element all-elements demo built via /respira/v2/builder/build returned success: true, element_count: 34 on both Divi 4 and Divi 5 envs. Divi 5 site fatal'd on render. Divi 4 site rendered an empty page (div.et_builder_inner_content with no children) because the adapter wrote D5 block format to a D4 site, and WordPress has no block-handler for divi/* blocks.

Fix. Bloom Phase B Divi F1: runtime-aware emit branching. D5 runtime always emits D5; D4 runtime never emits D5. D5-shaped payloads on D4 sites run through downconvert_divi5_tree_to_divi4() before the shortcode emitter so writes land as [et_pb_*] the D4 renderer understands. The render-validation gate from Phase A.1 + the alpha.2 trace surface partial_write so future regressions can't repeat this arc silently.

Beaver / Breakdance / WPBakery family bug

Three independent customer trials hit the same family-bug shape: API returns success: true while persistence is wrong for the version on the site. Different builders, same pattern. Breakdance trial abandoned mid-flight after stacked silent-fail tool calls. Beaver live-test 2026-05-07 surfaced an analogous silent-update flow. WPBakery vc_btn attribute drops on inject.

Fix. Bloom names the pattern and ships fixes as a class. Render-validation gate post-write. Universal trace fields. Per-property validators close the data-vs-render gap shape that produced the family. Auto-catalog from source so the LLM stops falling back to HTML it knows when the schema doesn't show the convention.

Elementor v4 atomic envelope corruption

An Elementor v4 trial site running migrated Variables and Global Classes. Pre-Bloom respira_update_module on an atomic e-heading widget overwrote settings.title = { $$type: "html-v3", value: "..." } with the bare string from normalize_text_setting_value. The renderer crashed (ArrayUtility::get_value() on a string) or silently no-op'd because the typed-prop reader expected an array.

Fix. Bloom Phase B Elementor 1.1: $$type envelope-preserving writer. atomic_widget_content_field() maps each of the 12 atomic widgets to its content field + envelope type. apply_atomic_envelope_write() detects existing envelopes and updates value while preserving $$type and extra fields like classes. Audit P0-3 closed.

Customer ledger

Seven trial threads, fixed

Every customer fixture from the v6.11.x cycle becomes a permanent regression case in v7.0. Replay tests run as part of the release gate; future Bloom-shape arcs catch on the test suite before they ship.

Oxygen render An Oxygen Classic trial fixed CSS regen now actually fires on REST writes
Breakdance convert A pro-services integrator pilot closed F3 + F4 + tokens_unmapped polish in v6.11.3
Divi calibration A Divi 5 trial customer closed Counter, pricing-table, formButton, flex-column, anon schema
Beaver Box-first A Beaver Pro agency closed Box-at-root + content_field_map 7 → 50
Bricks template A Bricks template author closed Element-name validator + paper cuts shipped in v6.11.0
Divi Variables A design-system tooling stakeholder in-progress Variables CRUD endpoint shape shipped; per-builder concrete in v7.0.x
Divi 4 writes A Divi 4 trial customer closed Per-attribute writer + downconvert from D5 shape

Posture

What Bloom means going forward

Pre-Bloom adapters were written to "produce a persisted blob the builder accepts." Bloom adapters must also produce output the builder renders correctly. A higher bar that surfaces a class of bugs (silent empty renders, typed-envelope corruption, wrong-version emit, dropped attributes) the older bar didn't catch.

Render-validation post-write. Universal trace on every response. Variables CRUD shape across every builder. Source-driven catalog. Per-property typed validators. Five invariants every adapter inherits going forward, so the v6.10.x family-bug shape stops repeating.

Update to 7.0.0

Cumulative roll-forward from any v6.x release with zero breaking changes.

The community · building in public

You're not the only one talking to WordPress.

The Respira community is where agency owners debug Divi migrations at 11pm, where vibe coders swap prompts that actually ship, and where the roadmap gets written out loud. Breathe with us.

Lines of code pushed through Respira
3,467,910
Live from the Respira ecosystem · updates as the agent ships
Slack
Async threads, release-day huddles, and the #show-your-work channel that never sleeps.
Join
Discord
Live voice on release days, screenshare debugging, and the vibe-coder corner that's always buzzing.
Join
GitHub Discussions
Long-form Q&A, bug reports, feature requests, and the public roadmap.
Open