A single timeline. Every version Respira has shipped, with the stories behind the ones that mattered. Click into any release tagged story for the full write-up.
A site can now hold one design direction, and every builder obeys it
addA site can now hold one design direction, and every builder obeys it. Nine new tools. wordpress_save_design_direction, wordpress_get_design_direction, wordpress_list_design_directions, wordpress_activate_design_direction
addwordpress_import_design_tokens reads DTCG 2025.10, Tokens Studio exports, Tailwind configs, or a plain :root CSS block into the direction. Dry-run by default, so what would change is visible before anything is written
addwordpress_apply_design_direction pushes the direction's tokens into each builder's own stores: Bricks global colors, the Elementor kit, Oxygen variables, nine builders in all. Approval-gated, with a per-builder report of
addwordpress_check_design reads what a build produced and says whether it is done. Nine deterministic rules: colors and fonts outside the direction, filler copy, placeholder names, the familiar AI tells, and probes generate
changePage builds stop treating the direction as advisory. build_page resolves hardcoded values against the active direction and reports anything that fell outside it, and the build skills run wordpress_check_design before cal
August 4, 2026
Design tokens now register on the other builders too, and the converted page references them
addDesign tokens now register on the other builders too, and the converted page references them. 8.3.2 did this for Gutenberg. Elementor, Bricks, Divi, Beaver Builder, Breakdance, Oxygen and Oxygen 6 now do it as well, each
addA registered token stays a reference instead of becoming a copy. This is what makes the registration worth anything. The converter used to inline every var() before any builder setting was built, so a colour registered a
addHonest about the gaps, per builder. Elementor 4.x has no stable global store for sizes, so sizes are skipped there rather than written into an option Elementor never reads. Divi 4 substitutes a global colour while render
fixThe last custom property in a :root block was dropped when it had no trailing semicolon, which is how minified CSS is normally written.
July 29, 2026
bulk_pages_operation's find_and_replace no longer corrupts escape sequences in post content
fixbulk_pages_operation's find_and_replace no longer corrupts escape sequences in post content. The bulk write path called wp_update_post() directly without wp_slash() first, so WordPress's own unslashing step silently ate
fixrespira_update_option no longer 404s on option names containing a dot (e.g. litespeed.conf.optm-css_min). The write, read, and delete REST routes share one URL pattern, and that pattern didn't allow periods in the option
fixcreate_menu_item with object_type: "page" (or any post type/taxonomy) now produces menu items that actually navigate. The menu item was stored with an invalid _menu_item_type value (the raw object slug instead of WordPre
fixOxygen style writes (color, background-color, etc.) to global Theme Builder templates now actually persist and render. The style-key lift that nests these properties under options.original (where Oxygen's renderer reads
fixA patch with an explicit path no longer silently writes to a different element. When a path failed to resolve, the node finder fell back to matching on type, which returns the FIRST node of that type on the page. A targe
fixDivi accepts the slash-form paths its own tools emit. apply_builder_patch calls carrying a path like /0/1/0/0/0 died in the path parser before reaching the writer, so the edit never happened even though the call reported
What the agent writes is what actually lands on the page
A deep pass through every supported builder, closing the gaps where a write reported success but the page stayed stale or blank. Styling now lands on Oxygen, Beaver Builder, Elementor v4 Atomic, Bricks, Divi 4 and Divi 5. Brizy and Visual Composer move from read to write, with their caveats stated. Recovery gets deeper: custom CSS and page settings are captured, and globals are versioned, so deleting a Bricks global class, a Divi preset, or an Elementor kit color leaves a recovery point. And when something cannot be persisted in a way the builder reads, Respira says exactly what did not land instead of reporting success. Every fix verified on a real site by loading the actual rendered page.
addBrizy moved from read to write. Respira can now write Brizy pages that Brizy's own editor opens and the front end renders. Writes are labeled with their caveats in the docs (front-end compile depends on Brizy's compiler
addVisual Composer moved from read to write. Respira now writes in VC's canonical storage format, so the editor loads the page and the front end renders. Labeled with its caveats (VC recompiles on the next editor save)
addGlobals are now versioned. Deleting a Bricks global class, a Divi preset, or an Elementor kit color now leaves a recovery point. "The agent deleted my global class" used to be unrecoverable; now you can roll it back. Res
addYour own custom CSS and page settings are now captured in snapshots, so the edits Respira makes to things like custom CSS are recoverable, not just the main content
addLoud-drop behaviour across builders. When a value cannot be persisted in a way the builder reads, Respira names exactly what did not land and tells the agent not to retry blindly. This is the systemic version of the per-
addAn internal check now runs across the test fleet to confirm that every builder function Respira calls actually exists in that builder. It would have caught several of the silent failures below the day they were written,
fixOxygen: generated CSS was being written without the selectors it needed, so styles never reached the page. Element styling now renders, and dynamic content resolves correctly. Code blocks that contained quotes could corr
May 9, 2026
README accuracy pass: 30 skills
change8 slash commands for the most common workflows
change30 auto activating skills, broken down as:
change1 visual reviewer sub agent that shows what changed after every edit
changeFull access to all 180+ Respira MCP tools through the bundled @respira/wordpress-mcp-server
Every page-builder adapter promoted to deeper-intelligence parity
The biggest release since v5. Every builder adapter promoted in lockstep. Five cross-cutting Phase A invariants every adapter now inherits — render-validation gate, universal write-trace, Variables CRUD shape, source-driven catalog auto-scan, per-property typed validators — plus Phase B slices per builder that close the family-bug arcs surfaced across v6.10.x. 1076 standalone test assertions across 27 alpha cycles, zero failures.
phaseA.1 Render-validation gate. Post-write check: HEAD-fetch the preview URL plus parser-walk the persisted blob using the parser the adapter declares. 9 parser slugs ship. Either failing surfaces partial_write: true with st
addOxygen Deep Intelligence: Full intelligence package for Oxygen Builder — 49 components cataloged with properties, types, defaults, and nesting rules. Component registry with dynamic detection and 24-hour caching. JSON Sc
addOxygen Settings Validator: Validates component properties and data types before injection — colors, URLs, emails, numeric values, booleans, and arrays all checked with detailed error messages
Showing the most recent 126 releases. Older entries are in the full CHANGELOG.md on GitHub. Every release follows semver.org.
cookies. the legal kind. one click and i'll get out of your way.
what you'd actually be saying yes to
tune your cookie preferences
essentials stay on regardless. the rest is opt-in. nothing fires until you tap save.
essentials
the cookies that make logging in work and remember which partner sent you. switching these off would just break the site, so the law does not let me make you opt out.
first-touch source on a /respira_acq cookie, plus a flag if an ai chatbot referred you. helps me figure out what is working without turning you into a tracking pixel statue.
messaging
customer.io for in-app notes, chatwoot when you click the support bubble. off by default. on means i can actually answer you in the app.