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.
Divi 5: hide a module, row, column or section per device
addDivi 5: hide a module, row, column or section per device
fixDivi 5: a visibility value in the wrong shape no longer breaks the
fixDivi 5: extra breakpoints are called out. On a site with widescreen
fixDivi 5: apply_builder_patch no longer reports a visibility change that
changeTroubleshoot names a coming-soon or maintenance mode. When a
September 30, 2026
Reading an option says when it holds PHP objects
fixAn option holding a plugin's PHP objects inside an array is no longer
fixReading an option says when it holds PHP objects. respira_get_option
fixRestoring a snapshot of such an option is refused. Snapshots hold
September 30, 2026
A queued write that lost its place in line still runs
fixA queued write that lost its place in line still runs. When two
fixA job that can no longer start says so. A job queued with a dashboard
September 30, 2026
A plan that is not active is named as the reason account sites are missing
fixA plan that is not active is named as the reason account sites are missing. When respira.press refuses the account site list because the plan lapsed, wordpress_list_sites, wordpress_get_active_site and wordpress_diagnose
fixA shorter account site list is announced once. When respira.press lists fewer sites for the account than it did earlier in the session, the next site tool answer carries site_list_shrunk with the sites that left and the
changeDivi 5 visibility is described (plugin 9.1.9). wordpress_update_element, wordpress_apply_builder_patch and wordpress_update_module name disabled_on and the native module.decoration.disabledOn path. Reported by A.S
September 30, 2026
Option tools describe PHP objects (plugin 9.1.8)
changeOption tools describe PHP objects (plugin 9.1.8). wordpress_get_option says that contains_php_objects: true means the value is a lossy view that cannot be written back as plain data, and allow_object_overwrite on wordpre
September 29, 2026
Elementor 4.3: a page with an Accordion can be edited again
fixElementor 4.3: a page with an Accordion can be edited again. Respira
fixElementor 4.3: untouched v4 elements are left alone. Edits rewrote
fixElementor 4.3: a style added to an element with a class list shows
fixWidget shortcuts no longer store their own options. add_section,
fixThe page outline carries ids. Rows now include id, plus module_id
changeApprovals through the site's own MCP endpoint are the calling key's
September 29, 2026
Approve or reject a pending duplicate over the REST API
addApprove or reject a pending duplicate over the REST API. An agent
September 29, 2026
Claude signs in to a site's MCP address again
fixClaude signs in to a site's MCP address again. Since 8.0 the site's
fixDivi 4: a section Respira could not read is kept. Divi renders any
fixDivi 4: element updates no longer write attribute names Divi does not
fixDivi 4: modules stay in their column. Duplicating or removing a module
fixPatches that add children say so. A builder patch asking for new
fixApproval for page and post custom CSS completes. The approval token
September 29, 2026
wordpress_approve_duplicate and wordpress_reject_duplicate
addwordpress_approve_duplicate and wordpress_reject_duplicate. An agent can put a change it staged on a duplicate live, or throw it away, without anyone opening wp-admin. Administrator keys only, with a snapshot before anyt
September 29, 2026
The Claude Desktop extension starts again on Desktop 2.9939.4
fixThe Claude Desktop extension starts again on Desktop 2.9939.4. That build sends a server/discover probe (protocol 2026-07-28) before starting a local server, and when the answer takes longer than two seconds it sends ini
fixRespira skills work as slash commands in Claude Desktop again. The bundle manifest now declares prompts_generated, so Desktop no longer answers prompts/get itself with "not declared in manifest"
fixApproval for page and post updates can complete. wordpress_update_post and wordpress_update_page now declare approval_token, so a client following the schema can send it back instead of receiving a new approval request o
September 28, 2026
Brizy: elements can be found, edited and moved by id
fixBrizy: elements can be found, edited and moved by id. Extract now gives
fixBrizy: text edits are saved. update_element and apply_builder_patch
fixBrizy: moves only move. A move no longer rewrites the rest of the
fixBrizy: get_page_outline shows the page. It read Brizy's storage
fixBrizy: preset icon sizes are accepted. A full-page write no longer
fixDivi Theme Builder: a template for a post type applies
September 28, 2026
Connected AI apps are not asked to sign in again because of it
fixA slow or unreachable Respira account service no longer ties up a
fixConnected AI apps are not asked to sign in again because of it. When
September 28, 2026
Brizy and Divi Theme Builder descriptions match plugin 9.1.3
changeBrizy and Divi Theme Builder descriptions match plugin 9.1.3. The Brizy guidance says an element's _id is its id for find, update and move, and how RichText text is replaced. The Theme Builder tools describe the full con
September 27, 2026
A new v4 heading no longer comes out empty on Elementor 4.3
fixEdits work again on Elementor 4.3 pages with the new headings and
fixA new v4 heading no longer comes out empty on Elementor 4.3. Text
fixA Divi 5 module that uses a preset now stores only the link to that
fixA nested Divi 5 attribute can be removed. unset in
fixA Divi 5 write warns about styling the Visual Builder cannot see. When a
fixColours are no longer written where Divi 5 loses them
September 27, 2026
Plan mode for every MCP client
addPlan mode for every MCP client. begin_session takes mode: "plan", on
addRead-only abilities from other plugins, one switch. Respira > Abilities
addA site keeps its own instructions for AI agents. Respira > AI Skills holds
addAgents can read and, when asked, write them. respira_list_skills,
addEvery session knows the skills exist. respira_get_site_context carries a
addWhat your AI is told. A new screen under Respira shows, in order, what an
September 27, 2026
WooCommerce order results carry the payment date, and line-item details on request (WooCommerce add-on 4.1.5)
addWooCommerce order results carry the payment date, and line-item details on request (WooCommerce add-on 4.1.5). woocommerce_get_order and woocommerce_list_orders describe date_paid and payment_method_title, and take inclu
September 27, 2026
Divi 5 writes describe the plugin's new removal and preset rules (plugin 9.1.1)
changeDivi 5 writes describe the plugin's new removal and preset rules (plugin 9.1.1). unset on apply_builder_patch, update_element and now update_module takes a dotted path such as module.decoration.font, and on Divi 5 a null
fixA security plugin that limits the REST API no longer strands a site. With All In One WP Security (and similar) allowing only the respira namespace, the ?rest_route= address is refused while /wp-json/ passes. A session th
fixA request stopped before it reaches Respira says so. A 403 from a security plugin's REST restriction was reported as "rejected this API key… the key was deactivated". It now says the request was blocked before it reached
fixA site added on the dashboard no longer goes missing because an older site was removed. The site list refresh used only the first site token in the config. Removing that site on the dashboard revokes its token, so every
September 27, 2026
SOUL.md reads the same to a customer as to an agent
changeSOUL.md reads the same to a customer as to an agent. Three passages are reworded: the standard an agent holds itself to (a straight answer, a real fix, a builder who replies) instead of a line about what customers are bu
September 27, 2026
Respira Exhale, the HTML to WordPress converter, is the route for a finished HTML page
addRespira Exhale, the HTML to WordPress converter, is the route for a finished HTML page. convert_html_to_builder now says what it does (a new page in the site's own builder blocks, the stylesheet scoped to the page, no to
addPlan mode. respira_begin_session passes mode: "plan" to the plugin
addSite skills. Four tools for the instructions a site keeps for its own
addDivi 5 native-write options. allow_inline_styles and
addThe key travels twice. Every request to the site now carries
addErrors carry cause and retry_ok. Plugin 9.1.0 adds both to the
September 26, 2026
A receipt for agent conversions
changeA receipt for agent conversions. A page converted on the site through Respira AER or a connected AI is reported to respira.press after it is built, without waiting, so the account's Respira exHale history and the month's
changeFramework grids keep their columns. A frozen selector's marker now rides in :where(), so it adds no specificity and a Bootstrap .col-md-6 is no longer outranked by the rewritten .row > *
changeForms and inline SVG survive on Divi 5. A leaf that carries a form, select, input or SVG lands in a Code module, which Divi prints as written; Bricks keeps the elements_dropped warning
changeA blank page template for block themes. Respira registers respira//respira-blank (WordPress 6.7 and later): the post content and nothing else. The converter writes it on block themes, so a converted page is no longer fra
changeHTML converter, after the 2026-09-26 Studio sweep. A Google Fonts @import whose URL carries ; no longer swallows the whole stylesheet; imports are lifted out and inlined as fonts, other imports are dropped and named. A l
changeThe HTML converter's tool description now says what it is for (a whole page that already exists as an HTML file) and points ordinary page building at build_page, add_section and update_element, so an agent does not reach
fixA site-scope Murmur link no longer puts its bar on a draft. With a
September 25, 2026
Approve on the page
addApprove on the page. A pending change's preview now carries a bar at
addFidelity mode on every builder. Elementor, the block editor family,
September 25, 2026
Approval links
addApproval links. wordpress_create_approval_link mints a share link for
September 24, 2026
The duplicate endpoint ignored suffix
fixPages Respira had edited lost every " when rendered, which broke
fixThe duplicate endpoint ignored suffix. A copy kept the original's title
September 24, 2026
Divi buttons showed stale preset text
fixDivi buttons showed stale preset text. Two causes, both fixed
fixGradient backgrounds were lost when converting HTML to Divi 5. A
September 24, 2026
A meta-only update_term call silently rewrote the term's description
fixA Bricks text edit was refused because twelve untouched images looked
fixA WPML translation was treated as a staged edit, and approving it
fixA meta-only update_term call silently rewrote the term's description
fixA Divi write aimed at one element could damage another that shared its
fixThe HTML converter scored a page 90 while throwing away every style it
fixConverted rows spanned the whole viewport. Three separate things caused
September 24, 2026
Every Elementor v4 widget answered "could not generate schema"
fixRespira was the outdated copy of the WordPress MCP Adapter that wins load
fixEvery Elementor v4 widget answered "could not generate schema". The schema
fixThe ten builder reference resources all returned the same payload. They
fixThe readable WebMCP bridge source described the bugs the shipped bridge had
September 24, 2026
The timeout cancelled the wrong site's requests
fixA site that stopped answering was reported as a tool timeout, and the
fixThe timeout cancelled the wrong site's requests. When a tool call aimed at
fixreport_issue could wait the full limit before filing. It looks up the
fixget_page_outline said it "could not auto-detect the page builder" when
September 24, 2026
The published package no longer carries the compiled test suite
fixThe published package no longer carries the compiled test suite. The
changeconvert_html_to_builder documents blank_template (Respira for
September 24, 2026
Builder references are readable as MCP resources
addBuilder references are readable as MCP resources. The plugin has
fixThe builder reference answers about the builder it was asked about
September 23, 2026
instead of queuing a job that can only
fixAn async write that needs approval answers with its approval token
September 23, 2026
Updates, as one roster and one batch
addUpdates, as one roster and one batch. list_updates reads every
fixget_page_outline without a builder name reached auto-detect. The
September 23, 2026
wordpress_list_updates and wordpress_run_updates
addwordpress_list_updates and wordpress_run_updates (Respira for
September 22, 2026
An Elementor v4 style written as CSS reached the page
fixAn Elementor v4 style written as CSS reached the page. Atomic styles are
fixThe stylesheet was never rebuilt, so even a correct style stayed
addWidgets and elements now say what they are before you write to them
addThe v4 half of the design system is readable
September 22, 2026
The Elementor tools describe what they now return
changeThe Elementor tools describe what they now return. With Respira for
changeA style written as plain CSS lands on Elementor 4.2 and newer. Nothing
September 21, 2026
A call that dies now says how long it ran and why
addA call that dies now says how long it ran and why. 482 MCP calls in 14 days
fixA Bricks page that could not be patched at all can be patched again. On
fixA term's meta is now written, and Yoast's term keys go where Yoast reads
fixAn option called "undefined" is no longer created on a call that forgot the
fixThe MCP endpoint stops working when the agent has gone. With
September 21, 2026
called "undefined". The name goes into the URL path, so sending it
fixAn option write that forgot the option name no longer creates an option
changewordpress_create_term and wordpress_update_term describe meta and seo.
September 21, 2026
The pause before a step is budgeted from the run itself
fixThe pause before a step is budgeted from the run itself. A run in the background works in four-minute windows and pauses before a step it cannot finish, then carries on in a fresh window. The pause used to be a flat rese
fixA paused run carries on in a window that can hold it. A search intent audit paused with 57 seconds left, and the same worker picked its continuation up 0.6 seconds later with 72 seconds left; the report step needed 68 an
fixThe pages a judge has scored can fold to one line each. On a pass judged by Jev, once respira_judge has answered, the page bodies it was given are no longer needed to write the report. Behind a switch that is off until m
September 20, 2026
A key that can read every meta field can finally be made
fixA key that can read every meta field can finally be made. Reading raw meta
September 20, 2026
ACF tools answered "ACF is not active" on sites where it is
fixACF tools answered "ACF is not active" on sites where it is. Before running an ACF
September 19, 2026
Tool calls that worked are no longer recorded as unfinished
fixTool calls that worked are no longer recorded as unfinished. When an assistant called
changeThree error messages now tell the assistant what to do next. An unknown post type
September 19, 2026
A copy of a page converted in fidelity mode keeps its design
fixA copy of a page converted in fidelity mode keeps its design. A page converted from
changeOwners read "comments" too. The wp-admin card, the Murmur screens and the messages
September 19, 2026
Review links say "comment"
changeReview links say "comment". Everything a reviewer sees on a Murmur review link said
September 19, 2026
and use one of the site ids it
changeAsking for a site that is not in this connection now says to call wordpress_list_sites
September 19, 2026
a note. Tool names and parameters are
changeThe review-link tool descriptions call what a reviewer leaves a comment, not a murmur or
September 19, 2026
Claude Desktop's Cowork and Code sessions could not start Respira
fixClaude Desktop's Cowork and Code sessions could not start Respira. They ask a
September 19, 2026
diagnose_connection says when a host blocks ChatGPT
adddiagnose_connection says when a host blocks ChatGPT. ChatGPT's connector reads a
fixThe package description and README said 230 core tools. The server has 231; the
September 19, 2026
Comments, not murmurs or notes
changeComments, not murmurs or notes. The Feedback tab, the review passes (Share for review, Apply the comments, Close the review loop, Murmur triage) and the messages the Apply and Reply buttons send all say comment now. Murm
September 19, 2026
A judge your model can call
addA judge your model can call. respira_judge hands Jev, the small decision model from TypeSafe, up to 200 items and one question at a time: yes or no, one of a few options, or a score on a scale you describe. It runs insid
addSix new passes judged by Jev, in their own group on the Do tab. Search intent audit: does each page answer what its title was searched for, worst first. Headline promise check: does the text under each headline deliver w
addFind outdated pages, judged. The stale-pages pass now has Jev score every page it reads for dates, prices and promises that no longer hold, and tells you the date it judged against. Without Jev it works as before
addThe receipt says how many items were judged. The Jev line counts the judge's calls next to the write checks and adds "120 items judged", so a pass that costs Respira a fraction of a cent shows what it did with it
changeA broken page gets checked, not explained away. When you say a page or preview looks broken, AER now reads the page and, for a copy, its original, and compares what the tools can show before it explains anything. It no l
September 19, 2026
A step that asks for too many tool calls no longer ends the run
fixA step that asks for too many tool calls no longer ends the run. One SEO sweep over a whole site asked for 138 analyses in a single step; the run stopped with nothing in the chat to say why, and that chat could never be
fixRetired and hand-typed model ids run on the right model. A chat set to claude-opus-4-1 or gemini-2.5-flash runs on the model that replaced it, and says so once. An id typed by hand, like Opus-5, is read as the provider s
fixEvery reason a run stops is in the chat after a reload. Step caps, output caps, time limits and crashes used to reach the screen live and vanish on reload. Each one is stored with the run now
fixA run pauses before a tool call it cannot finish in time. A call that would have been cut off by the time limit is left for the next window instead, and nothing is half saved
fixGemini 3 works with tools across steps. Gemini's signatures on tool calls are kept and sent back, which Gemini 3 requires
fixThe SEO sweep on a whole site is bounded. It picks the pages that matter most, works in small batches, says what it covered and offers to continue. The stale-pages and store passes are bounded the same way
September 18, 2026
A self-contained HTML file keeps its pictures
fixA self-contained HTML file keeps its pictures. Design tools and AI builders export a page as one file with every image inside it. Converting one dropped all of them: the page came out with empty image modules, and a link
September 18, 2026
An edit reaches the page on every builder
fixAn edit reaches the page on every builder. update_element was changing the element on the page for 5 of 14 edits on Elementor, 7 on Beaver Builder, 4 on Bricks, 8 on Divi 5, none on Divi 4, 3 on Breakdance, 6 on WPBakery
fixA Breakdance page no longer dies when an agent adds a form. add_form wrote a Form Builder with no fields, and Breakdance's form renderer stopped the page with a PHP fatal error. Forms now always carry their fields
fixAn Oxygen 6 page keeps its forms. Any write to a page, including an edit to a different element, reset every Breakdance form on it to a single "Message" field, and cleared what a search box, Gravity Forms or Ninja Forms
fixadd_* renders on Divi 4, WPBakery, Breakdance, Oxygen 6 and block sites. Divi 4 went from 9 to 21 of 22, WPBakery from shortcodes printed as raw text on the page to 21 of 22, Breakdance from 0 to 22, Oxygen 6 from 2 to 2
fixDivi 5 tabs, social icons and icon lists render. Their items were written as a flat list no Divi 5 renderer reads; they are now child modules. add_* on Divi 5 is 21 of 22
fixThe id an add_* call returns works on the next edit. On Divi 4 the id was refused, on Divi 5 only the second id worked, and on Breakdance and Oxygen the builder renumbered the element so the id pointed nowhere
September 18, 2026
The add_* tools render on Elementor
fixThe add_* tools render on Elementor. Run against Elementor 4.1.1 and read back from the published page, 3 of the 21 add_* tools showed what the agent sent. They stored the tool's own words where Elementor reads its contr
fixThe add_* tools render on Beaver Builder. Run against Beaver Builder 2.10.2, 4 of 21 rendered. add_heading stored title where the Heading module reads heading, and six tools named modules Beaver does not have (the text,
fixThe list of Beaver modules agents read is Beaver's own. It was kept by hand, named two modules Beaver does not have and left out fourteen it does, including List, Number Counter, Search and Content Slider. Beaver's live
addUndo for Elementor's design system. Elementor 4's global classes, variables and default styles are not pages, so no page snapshot held them and Elementor's revisions do not cover them. A change to them through Elementor'
September 18, 2026
The add_* tools render on Bricks
fixThe add_* tools render on Bricks. Run against Bricks 2.4 and read back from the published page, 5 of the 21 add_* tools showed what the agent sent. add_heading stored title where Bricks reads text, so the heading was emp
fixDivi 5 settings land where the module reads them. Divi ships, next to every module, the map from each Divi 4 setting name to its Divi 5 place. Checked against it: 19 of Respira's routes sent a setting somewhere the modul
fixBricks' own AI abilities get Respira's snapshot. When your agent calls one of the 170 abilities Bricks 2.4 registers through Respira, the page it changes is snapshotted first. It was not: Bricks names the page postId, an
fixClassic Elementor keeps a global a global. A colour or font your agent takes from the site's globals is stored the way Elementor stores it, so changing it in Site Settings updates the page. Writing the global's name used
addA change can name the page version it was based on. Every Respira answer about a page carries its content_version. Send it back as expected_version on update_page, update_post, update_element, update_module, inject_build
September 18, 2026
A write can name the page version it was based on
addA write can name the page version it was based on. update_page, update_post,
September 18, 2026
A check after every content change
addA check after every content change. Once a write lands on a site, AER asks Jev, a small decision model from TypeSafe, three things about the tool's own result: did the change land, is it what you asked for, and did it to
addThe Jev line on the receipt. Each receipt shows how many checks ran, what they cost and how many changes were flagged. Jev is included free on every plan and is never added to your model bill
addAn off switch. Jev checks are on by default and can be switched off in AER settings. When they are on, your request and each write's result go to TypeSafe for the check. TypeSafe does not train on them
changeChats. The list on the left is called Chats now, and each row shows its title on two lines with the time and the model under it. The copy and delete actions moved into a small menu on the row
changeThe settings entry. The bottom left of the app opens the same menu as the top right, shows the AER version, and keeps its link to the settings page
changeAER in the release notes. AER versions now appear on the releases page, in the RSS feed and in the dashboard's What's new list, next to the plugin and MCP releases
September 17, 2026
A Gutenberg container no longer saves empty when its children arrive under an unfamiliar word
fixA Gutenberg container no longer saves empty when its children arrive under an unfamiliar word. A group, columns or buttons block whose children were nested under blocks, or under any word the fold list had not been taugh
fixAn Elementor write that lands as something else says so. The render check read the tree the request held in memory, so a green light meant "what i meant to write is well formed" and could not see a page that ended up hol
fixA Bricks patch on a converted page stops being refused for a change it made on purpose. On a page built by convert_html_to_builder, a text element carries its copy and its converted child carries the same words, so after
fixThe Divi 5 widget shortcuts point at modules Divi really has, and those modules render. add_counter builds a Number Counter instead of a bar, add_progress_bar builds a bar counter with its bar, and add_spacer, add_alert,
fixRaw Divi 5 markup that would empty its own blocks is refused. update_page, update_post and update_custom_post check the block attribute JSON first and name the blocks that do not parse, instead of saving the page and lea
fixA tool catalogue that comes back empty says why. A connection could advertise only the two built-in tools while the site's own screen showed everything enabled, with no number anywhere that moved. tools/list, the connect
September 17, 2026
diagnose_connection says when the host answers /.well-known/ itself
adddiagnose_connection says when the host answers /.well-known/ itself. Some hosts serve
fixDuplicating a post takes the id names agents already use. create_post_duplicate read
fixA missing route stops blaming your plugin version. When a Respira route 404s on a site
fixUpdate advice matches the install that is answering. On a Claude Desktop .mcpb bundle
fixA 403 from a web server now carries its evidence. The answer used to be a ranked list of
fixOne element can be read on a page too big to extract. find_element now declares the
September 16, 2026
Murmur's element outline stays on the element after scrolling
fixMurmur's element outline stays on the element after scrolling. The review overlay is fixed to the viewport, but its hover outline was positioned with document coordinates. After a reviewer scrolled, the green border move
Respira AER is the agent workspace in the Respira dashboard. Respira for WordPress 9.0 is the runtime installed on each site: it gives AER secure access to the site's builders, memory, approvals, snapshots and receipts without putting another chat inside wp-admin. Across 8.x the plugin learned five things one release at a time. It remembers a site and enforces its rules. It knows the site's art direction and checks work against it. It lets clients talk back through Murmur. It lands a designed page as native builder output. And it proves what change runs did. Version 9.0 brings those parts together and adds an Open in Respira AER button plus a Ready for Respira AER checklist. Murmur links and client notes, spoken ones included, show up where you work. Site memory and Art Direction are on screen next to the pages they govern. The security audit gives the same answer whether you or your agent run it from an app connected over MCP, from Respira AER or from the site's own endpoint: the known vulnerabilities that match its plugins, themes and WordPress version, checked against Wordfence Intelligence, each with the version that fixes it, and never a clean report when that database cannot be reached. Change runs leave receipts, and reversible content work keeps its snapshot or undo.
addOpen this site in Respira AER from wp-admin. When your plan includes Respira AER, Home
addReady for Respira AER. A checklist on Home says in plain words whether Respira AER can
addClient feedback in wp-admin. Activity has a Feedback tab: live Murmur review links with
addYour agent can write the client report. generate_activity_report reads the site's
addTwo new tools fix what the security audit finds. update_theme updates a theme the
addA new major version says what it brings before you update. An update that crosses a
September 15, 2026
Divi 5 duplicates can be edited independently
fixDivi 5 duplicates can be edited independently. A copied element kept the internal ID
fixThe Divi 5 pricing shortcut creates a real pricing table. It emitted a module name Divi
fixDivi 4 keeps third-party modules that Divi registered. A page containing a WPForms
improvedView details shows what the update server sends. Descriptions, changelog sections,
improvedMajor updates explain the handoff. An update that crosses a major version carries a
September 14, 2026
Duplicate Page understands the page ID names agents already use
fixDuplicate Page understands the page ID names agents already use. A call with
fixPlugin folder names with spaces stay one URL segment. Activate, deactivate, update and
September 13, 2026
An approval now covers exactly what was approved
secAn approval now covers exactly what was approved. When a tool needs your approval, the
fixElementor pages keep their accents and line breaks. Since 4.1.4, editing one element on an
fixAn option stored as text is never silently replaced by an array. A plugin that keeps its
fixWPML: duplicates get the original's language again. Since 8.8.23 a duplicate made for an
fixDivi 5: a global module reference is refused out loud. Setting globalModule or
September 13, 2026
Every review link is signed
addEvery review link is signed. The review bar carries the Respira logo and "Made by
changeA quieter microphone. On a Murmur link the speak button is now an icon. While it
September 13, 2026
Themes are checked for known vulnerabilities too
addThemes are checked for known vulnerabilities too. The security audit now lists every
fixThe 12 August WordPress security release can be applied from Respira. The dashboard could
September 13, 2026
Your clients can speak their murmur
addYour clients can speak their murmur. Someone leaving a note on a Murmur link can now tap
fixThe review bar picks up its new look after an update. The overlay's stylesheet was asked
September 13, 2026
A readiness checklist per site
addA readiness checklist per site. AER reads each site's plugin version and says which tools that version brings, so a request for something the site cannot do yet is answered with what to update rather than a failed call
addSites know the call came from AER. Every tool call carries the AER version and the chat it belongs to, so a site owner reading their logs can tell what made a change
addPasses for security review, client report and the review loop. Three more of the ready-made passes, alongside the earlier ones
addAn R&D tab. Ask what AER is for, share feedback, and report a bug with the chat's state attached
September 12, 2026
Custom CSS in a page's settings now needs your approval
fixCustom CSS in a page's settings now needs your approval. An agent could write CSS into
fixArt Direction can turn a direction off, and undo what it applied. The screen could only
fixApplying a direction twice no longer moves the undo point. A second apply used to
September 12, 2026
Murmur review links
addMurmur review links. Ask your agent for a review link to a page, a set of drafts or
fixThe activity report needs an administrator. The generate_activity_report ability
fixEvery write over REST meets governance, read-only means read-only. Two gaps from
fixAdd-on SDK tools need a signed-in user. An SDK add-on's ability answered anyone for
September 12, 2026
Murmur: seven tools for the review links your clients talk back
fixapply_builder_patch accepts find_element's identifier shapes. The tool now
September 11, 2026
Hosts that turn PUT, PATCH and DELETE into reads
fixHosts that turn PUT, PATCH and DELETE into reads. Some hosts pass those requests to
fixA site URL that redirects is named as the problem. When the configured URL redirects
fixSite template operations take type and operation as well as op. The three
changeThe HTML conversion tool describes fidelity mode, the default in plugin 8.8.34 when the
September 11, 2026
wordpress_create_share_link
addwordpress_create_share_link. Mints a share-grade preview link for any page, post,
addttl_days on wordpress_mint_design_preview. The same token, minted for days instead
changeBoth tool descriptions now say what the link is for: put it in the reply with its expiry
September 10, 2026
An HTML page converted to Divi keeps its stylesheet and its classes
fixAn HTML page converted to Divi keeps its stylesheet and its classes. The converter
fixAn upload that fails says why. When WordPress could not move an uploaded file, the
fixThe update page tool takes a template and reports what it stored. A template
September 10, 2026
A refused connect now says why
fixA refused connect now says why. Connect returns you to the Overview screen, which hides
fixA second edit on an Elementor page built with sections no longer blanks it. Adding an
fixDuplicated Divi modules no longer block every edit. Divi 5 keeps a module's internal id
fixOne edit on a multilingual Bricks site no longer rewrites query filters across the site
fixFlex layouts converted from HTML now render on Bricks. Direction, alignment, wrapping and
fixSigned-out visitors can see a site's public tools again. With public discovery switched
September 9, 2026
The public key check was an oracle, and an amplifier
secThe public key check was an oracle, and an amplifier. POST /respira/v1/auth/validate-key
secAny key could destroy any other key. DELETE /respira/v1/auth/revoke-key/{id} checked
fixChatGPT could only see two of the tools your site offers. Tool names for the built-in
September 9, 2026
A Respira outage was reported as a fault on your site
secA lapsed trial could leave a valid key refused on your own site, and 8.8.27 made it
fixA Respira outage was reported as a fault on your site. When the account service
fixDivi 4 writes could silently drop part of the page. A targeted edit rebuilt the
fixA Divi 4 patch could report content loss that had not happened, and roll back
fixDivi presets applied through the API were not recognised by the Visual Builder
fixBeaver: removing a setting reported success and wrote the word "unset" instead
September 9, 2026
Builder-aware tool routing
addBuilder-aware tool routing. A request that looks like page building brings in the builder tools (schemas, outline, extract, patch, convert, build, responsive) instead of leaving the model to guess at attribute names
addSkills arrive with their procedure. Running a skill fetches its published SKILL.md once and hands the tested sequence to the model, rather than the model's guess at it
addUpdates that arrive. The installed app checks for a new build every 30 minutes and names the version waiting
addA version number. The app's menu shows which AER you are running, and every site AER talks to sees it in its logs
change10 skills brought to catalog parity, plus Figma to Elementor, page-template-library, prime-the-agent, stale-content-detector. 41 skills total.
changeMigration skills rewritten to be snapshot-safe with surgical find/update/batch.
changeconnect-site no longer assumes it can write to ~/.respira; it hands you the move command instead.
changeInstall docs corrected. The page claimed Cowork installs Node for you and would prompt if it was missing. Neither is true, and a Windows customer lost an evening to it. The prerequisite now says to install Node yourself,
changeTwo stale counts fixed against their sources: 41 skills (was thirty), 17 page builders (was 16).
Respira spoke sixteen page builders. As of 8.0 it also speaks WordPress's own Site Editor: block templates, synced patterns, block navigation and design tokens, readable and writable on the same safety contract as everything else. A navigation link changes by exact block path, not by rewriting the menu. A pattern is created, read back through WordPress, render-checked, then placed by reference. Structural edits can wait for your approval, and every write leaves a snapshot, a normalised diff and a server-render result. The WooCommerce add-on goes to 4.0 alongside it, and its storefront tools now try the native block path first, so a shop built in the Site Editor stops being a place where the store tools quietly go dark. Building all of that meant auditing the safety layer itself, which turned up two places where the safety mechanism was the thing doing the damage: a Divi serialiser rule written for brand-new pages was firing on every write path, and undoing a Theme Builder create could trash a template the agent never created. Both fixed, both pinned by permanent tests.
addNative FSE structure service for templates and template parts with hierarchy/source discovery, exact block-path operations, stale-write fingerprints, structural proposals, snapshots, normalized diffs, cache invalidation,
addNative user-pattern and block-navigation editing on the same structural contract: registered theme/plugin patterns remain read-only; editable user patterns support synced/unsynced state; navigation responses include comp
addFirst-class Site Editor and Gutenberg design-token MCP surfaces.
addAgent-facing activity list/detail endpoints linking audit entries to snapshots, proposals, approvals, and rollbacks.
addShared mutation-result contract for dry runs, pending approvals, verified writes, stored-but-unverified writes, rollbacks, and failures.
addAbility discovery now labels results as Respira-native, inhaled, unavailable, or replaced by a safer Respira workflow and returns the preferred next tool.
changeRewriting a Divi Theme Builder global layout now requires explicit confirmation. update_theme_builder_template refuses the first call with respira_tb_live_edit_confirmation_required, naming the layout and stating that th
July 16, 2026
Released 2026-07-16.
changeReleased 2026-07-16.
addProduct configurator tools (STAGGS). 8 tools: configurator status, per-product enable/disable, attribute-group listing, option-items read and write (through the STAGGS/Carbon Fields helpers, so storage stays consistent), and an allow-listed
add"What an agent could do here" card on the Respira ARC screen: eight copyable real prompts covering catalog fixes, pricing previews, cart links, agent-order reporting and storefront design.
July 16, 2026
Released 2026-07-16.
changeReleased 2026-07-16.
changethe Respira ARC screen is light-only and matches the standard wp-admin chrome (the dark variant read as a foreign app and had contrast problems).
addofficial platform logos (Google, OpenAI, Meta, Pinterest, TikTok) on the format chips and submit links.
changethe fix-prompt button is smaller ("Fix with AI") with a tooltip explaining what the prompt does and what Respira is.
July 16, 2026
Released 2026-07-16.
changeReleased 2026-07-16.
addSubmit links on the feed table. Each feed row links to the right platform dashboard (Merchant Center, OpenAI merchants, Meta Commerce Manager, Pinterest, TikTok) with a one-line where-to-paste instruction on hover.
addA quiet footer with credits and links (add-on, ARC, docs, support), and the agent-tools panel links to the full tool list.
July 16, 2026
Released 2026-07-16.
changeReleased 2026-07-16.
addFix prompts on the quality card. Every failing readiness check now carries a copy-ready prompt for your AI assistant (Claude, ChatGPT, Cursor). Paste it into an assistant connected through Respira and the agent fixes what the check flags, s
addProduct picker for cart links. Choose products by name (variations grouped under their parent, prices shown) instead of typing product IDs. Large catalogs show the first 200 by name.
addThe page title now carries the Respira ARC wordmark, set in Alan Sans (bundled, no external font requests).
July 16, 2026
Released 2026-07-16.
changeReleased 2026-07-16.
adda small provenance line under the Respira ARC page title, so a screenshot instantly shows whether the screen is rendered by this add-on or by the free Respira ARC plugin.
July 16, 2026
Released 2026-07-16. Agent-Ready Commerce: AI assistants can now find, read, and sell from your store. 79 MCP tools (up from 56).
changeReleased 2026-07-16. Agent-Ready Commerce: AI assistants can now find, read, and sell from your store. 79 MCP tools (up from 56).
addProduct feeds in six formats. Google Shopping XML (Merchant Center scheduled fetch; Bing accepts the same file), OpenAI/ChatGPT JSONL, Meta CSV, Pinterest CSV, TikTok CSV, and generic CSV, plus a store llms.txt at the site root. Built in th
addReadiness becomes a fix loop. readiness_fixlist turns the AI-readiness scan into an ordered work queue mapping every failing check to the tool that fixes it; set_image_alt writes the alt text that fails most; update_product gains global_uni
addAssisted checkout with attribution. create_cart_link builds signed multi-item cart URLs: the shopper's cart fills server-side and lands on your own checkout; tampered signatures are rejected. Orders are attributed via WooCommerce native att
addSubscriptions, Bookings, Memberships write tools (14). Tested against the real extensions. Status transitions validated against what each extension allows, booking reschedules include a conflict scan, everything is dry-run by default with s
addRespira ARC admin screen under WooCommerce → Respira ARC: feed URLs with copy buttons, catalog quality score, cart link generator, agent-origin orders, in light and dark admin schemes.
July 16, 2026
Released 2026-07-16.
changeReleased 2026-07-16.
fixrevert_pricing works end to end for the first time. Two defects, both present since the pricing tools shipped in v2.0: the tool passed a numeric snapshot id to the UUID-keyed snapshot store (so the lookup could never match, and the error ob
July 16, 2026
Released 2026-07-16. The full commerce surface: 56 MCP tools (up from 21). Completes the v3.0 rollout that began in June: the release was built and published then, but the update was never offered to customer sites, which kept stores on the
changeReleased 2026-07-16. The full commerce surface: 56 MCP tools (up from 21). Completes the v3.0 rollout that began in June: the release was built and published then, but the update was never offered to customer sites, which kept stores on the
add15 commerce tools now reachable over MCP. The catalog, pricing, inventory, and storefront endpoints (advanced product listing, natural-language product search, catalog health, bulk product/price/stock updates, sale scheduling, pricing rollb
addBrand tools. list/get/create/update/delete-brand REST routes and MCP tools (the abilities existed since 2.2.0; now they're reachable everywhere).
addVariations and attributes. set_product_attributes (global or custom, creates missing terms), generate_variations (cartesian product, skips existing, capped at 100/call), create_variation, set_variation_gallery (variation image + gallery whe
addCoupons and customers. list/create/update_coupon (discount types, expiry, usage limits, product/email restrictions) and create/update_customer (billing and shipping addresses; passwords auto-generate and are never returned).
addOrder notes and refunds. add_order_note (private by default), get_order_refunds, and create_order_refund which is DRY-RUN BY DEFAULT: it previews the refund until you pass dry_run: false, and never touches the payment gateway unless refund_
The plugin now tells the same story as your dashboard
The setup and connection screens were rebuilt around one source of truth. You link a site once, then watch the moment your first agent reaches it: the screen updates on its own and names what just happened, for example "connected. Claude just ran update_page on page #42". The plugin, the dashboard and your agent now read the same connection state, so they always agree on whether a site is connected and what access it has. One-click installs (the Desktop app, Cursor, Cowork) lead the way in, with browser sign-in still there for ChatGPT and claude.ai. Sites also arrive in the dashboard with their real WordPress title instead of a bare URL, which matters the moment you run more than one. And seven builder fixes land across Bricks, Divi, Elementor 4.x and Gutenberg.
addThe setup and connection screens now show your site coming alive. They tell the same story as your respira.press dashboard: link the site once, then watch the moment an agent first reaches it. When an app connects, the s
addYour site now arrives in the dashboard with its real name. The plugin sends your WordPress site title when it activates and when it checks in, so a site shows up by name instead of a bare URL when you manage more than on
fixBricks: moving or nesting an element no longer drops its siblings. Reordering or re-parenting an element on an existing Bricks page used a nested-tree move against Bricks' flat element tree, which could leave other eleme
fixBricks: a link set to open in the same tab now does. Bricks decides whether to open a new tab based on whether the setting is present at all, so switching the toggle off still opened a new tab. The setting is now removed
fixDivi: editing a single module now refreshes the cached CSS. A single-module or update-page edit on Divi did not clear Divi's static CSS cache, so a change could look like it had not applied until the next full save. The
fixDivi: custom post types are no longer corrupted by certain color settings. A color setting that contained square brackets could end the shortcode early and spill raw text into the page. Those characters are now encoded s
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
Redesigned admin, public add-on SDK, generate_activity_report
A React-first plugin admin built around live telemetry: a bridge view of agent ↔ Respira ↔ site, real cards driven by eleven new REST endpoints, and a personalised greeting. A public add-on SDK ships so third-party plugin authors can register their own MCP abilities. And a new MCP tool, generate_activity_report, turns this site's audit log into a structured report your own agent shapes into prose — six framings cover the use cases customers actually have, time-saved math is calibrated to conservative per-tool baselines, and Respira never writes a single line of prose itself.
addCode signatures (Respira_Bricks_Signatures). Bricks refuses to render code / svg / queryEditor elements on the frontend unless they carry a signature minted by Bricks with the site secret. Elements pushed through the RES
addStructural autofix (Respira_Bricks_Autofix). Pre-validation repair pass on the build / inject path: strips bare px (skipping raw-CSS / text / url keys), renames div → block, regenerates invalid or duplicate IDs and rewri
addQuirks coercion + warnings (Respira_Bricks_Quirks). Centralises Bricks settings footguns with a clear split: silently coerce the safe ones (link.postId / _link.postId int → string so the href actually emits; harvest imag
addResponsive inference — builder-agnostic. Explicit, idempotent, non-destructive action that generates tablet + mobile breakpoint overrides for a desktop-only page. The scaling tables + fluid clamp() math live in a builder
addDesign-token import (Respira_Design_Token_Import). Bring a Tailwind theme object, a Figma Tokens Studio export, or a Style Dictionary / DTCG file into Bricks. Colours land as palette swatches plus --color-* CSS variables
addSection presets (Respira_Bricks_Section_Presets). A curated library of production-ready Bricks sections (hero, features, CTA, testimonials, pricing, stats, FAQ) an agent drops onto a page. Each flattens to Bricks' native
May 27, 2026
Released 2026-05-27.
changeReleased 2026-05-27.
addProduct brand support (product_brand taxonomy). The update-product and create-product abilities now accept brand_ids so an AI can assign or clear brands on a product the same way it already assigns categories and tags. Full CRUD endpoints l
addFeatured-image removal. The update-product ability now accepts image_id. Pass an attachment ID to set; pass 0 or null to remove the featured image. Previously the only image-related field on the response was a read-only URL; agents had no w
schemaProduct response shape gains brand_ids, brands, and image_id. image is unchanged.
May 19, 2026
wp.org review fixes
changeDisplay name updated to "Inhale: MCP Abilities by Respira" so the author attribution is visible in wp-admin plugin lists. Slug inhale-mcp-abilities is unchanged.
changeContributors field in readme.txt now lists urbankidro (the wp.org username that owns the plugin) instead of the brand string. The Author header still reads "Respira" so the visible attribution on the directory page is un
changeuninstall.php updated to remove the new primary key, the v0.4.0 migration flag, the canonical compat key, and every legacy key from v0.1.x and v0.2.x. Single-site and multisite sweep.
May 18, 2026
WordPress.org Plugin Directory submission
changeCanonical option key. v0.2.0+ stores the opted-in list under mcp_adapter_public_abilities — the same key proposed first-party in [WordPress/mcp-adapter#184](https://github.com/WordPress/mcp-adapter/pull/184). A one-shot
changeBrand-aligned chrome. Header with "by respira.press" Baskervville italic subtitle and a tiny version pill in the right-side toolbar. Light and dark themes both render with AA contrast
changeiOS-style toggle in the Status column for fast per-row inhale / exhale, on top of the standard wp-admin bulk-actions pattern
changeForeign admin notices suppressed on the Inhale settings page only, so the screen stays focused on the one decision it exists to support
changeHardened uninstall. Removes every option the plugin has ever written, single-site and multisite
changePlugin Directory readiness pass. ABSPATH guards on every shipped PHP file. Every output escaped. Every state-changing request nonce-verified and capability-gated. No remote calls, no tracking, no obfuscation, no bundled
May 17, 2026
hardening pass
changewp_die response code 403 + back link on the settings page permission denial path. Access logs and automated clients now see an authorization failure instead of a generic error
changeRow class escaping normalised: the abilities table's <tr class="…"> attribute is always rendered through esc_attr() instead of conditionally injecting the attribute fragment. No behavioral change, but conforms more stric
May 17, 2026
first public release
changeDiscovers every ability registered via the WordPress Abilities API and lists them in a wp-admin native list table.
changeStandard wp-admin selection + bulk-action UX: row checkboxes are selection; Bulk Actions dropdown plus Apply commits Inhale or Exhale immediately. No save-changes step.
changeRow-hover quick actions for single-ability inhale or exhale.
changeAnnotation badges on each ability (read-only, destructive, idempotent) sourced from the ability's declared meta; falls back to heuristic inference from the ability name when the registering plugin didn't tag it.
changeFilter views (All, Inhaled, Read-only, Destructive, Unannotated), a search box that matches across name / source / description, sortable columns, multi-select source filter, client-side pagination (20/50/100/All).
changeSources summary card above the table listing every plugin or theme that registers abilities, with the count per source and deep-links to each source's wp-admin home.
May 10, 2026
Zero-touch Cowork onboarding (Open in Cowork)
change.mcp.json sets RESPIRA_BOOTSTRAP_OK=1 so the npx server boots even without a config file present.
changeExisting RESPIRA_CONFIG_FILE, RESPIRA_AGENT_CLIENT, RESPIRA_AGENT_TRANSPORT env vars unchanged.
changeVersion label bumped in plugin.json and README.md.
changeThe skill-documented config shape ({url, apiKey}) crashed the MCP server silently on startup because the server required four fields (id, name, url, apiKey). User saw "MCP server still connecting…" forever.
changeThe Cowork form echoed pasted API keys into the chat transcript, contradicting the skill's own privacy promise.
change.mcp.json points RESPIRA_CONFIG_FILE at ~/.respira/config.json.
changenpm dependency pinned to @respira/wordpress-mcp-server@latest so the server schema fix lands immediately.
change/respira:connect-site skill rewritten: check for ~/.respira/config.json, point user at the dashboard to download it if missing, restart Cowork, test. Includes a "if startup fails" branch that reads ~/.respira/last-startu
changeREADME.md and INSTALL.md updated to describe the unified flow.
May 9, 2026
audience-first README rewrite
changeEdit a page without opening WP admin ("Update the headline on my client's homepage to say 'spring collection arriving'", about thirty seconds end to end)
changeMigrate a client site between page builders (sixteen supported paths, week of work into an afternoon)
changeAudit a site before a client meeting (SEO, AI search visibility, accessibility, mobile, technical debt, WooCommerce, with one-click fixes)
changeClean up a media library in one pass (alt text, compression, dimensions)
changeManage ten client sites from one conversation (multi-site context follows the conversation naturally)
changeNo code changes.
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
Closes 14 customer bugs across 5 named trials and 7 GitHub issues
The release I should have shipped weeks ago. Closes 14 customer-reported bugs across 5 named trial threads and all 7 open public GitHub issues, plus 5 cross-cutting audits — JSON post-meta unicode safety across every adapter, MCP server tool-schema audit, duplicator kses bypass, schema endpoints anon-readable, render-trace fields on every write. New respira_diagnose_connection tool surfaces edge-layer interception so REST returning homepage HTML instead of JSON stops being opaque.
Self-updater fatal on every WP cron tick. class-updater.php:104 called \Respira_License::get_license_key() which has never existed on the core License class — every site that activated the add-on threw Uncaught Error: Call to undefined meth
fixSelf-updater fatal on every WP cron tick. class-updater.php:104 called \Respira_License::get_license_key() which has never existed on the core License class — every site that activated the add-on threw Uncaught Error: Call to undefined meth
April 20, 2026
drop keytar, fix whoami after login, unstick terminal, warm welcome
54 ACF tools covering field reads and writes, field-group management, ACF Pro repeaters, flexible content, galleries, options pages, relationships, and bulk updates. Every write snapshot-backed and dry-run previewable. Works on approximately 2 million WordPress sites that use ACF today.
add54 Advanced Custom Fields tools under respira_acf_*. ACF powers flexible content models on approximately 2 million WordPress sites. Before v6.6.0, Respira could only read ACF values through generic post-meta calls, which
addEvery write tool creates before_edit and after_edit snapshots via Respira_Snapshots::capture_snapshot(), audit-logs through Respira_Auth::log_action(), and supports dry_run=true to preview the change without executing. E
addLicense tier gating follows the existing scope model. Reads (get_*, list_*, search_*) require any valid API key and are available on Lite. Writes (update_*, delete_*, create_*) require the write scope and are available o
addACF presence detection in site context. Respira_Context::get_addons_context() now exposes addons.acf.{installed, pro, version, licensed}. MCP server uses this to register ACF tools only on sites where ACF is active and t
tested17/17 direct-handler assertions via mu-plugin probe.
tested54/54 HTTP assertions against the full endpoint surface using a real encrypted API key (wp-now + ACF 6.8.0): 28 free ACF tools return 200 with the expected payload shape, 26 Pro-gated tools correctly return 412 respira_a
changeSix-phase execution cycle: LoadContext -> PreHooks -> Resolve -> Execute -> PostHooks -> Return. Deterministic. Traceable. Every command runs through every phase
changeFive framework hook contracts, frozen for v0.1: before_resolve, filter_plan, before_execute, filter_result, after_execute. In v0.1 no callbacks register. v0.2 populates them. NullHookRegistry swaps for ManifestBackedHook
changeTyped ToolChainFunction<T> abstraction for all 34 commands. Each function declares capability (read | write | destructive), domain tags, and prerequisites
changeFile-organization convention: one BaseCommand subclass per file, one ToolChainFunction per file, always co-located. Named export <camelCasePath>Function
changeStructured JSON tracing via --verbose, written to ~/.respira/traces/{invocationId}.json. Hard cap 10,000 entries per invocation
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
Flatsome UX Builder joins as builder #12. 15 new WooCommerce Commerce tools with storefront design intelligence. Context-aware MCP tool filtering reduces tools in context by ~40. Three coordinated releases.
addFlatsome UX Builder as Builder #12: Full support for the most popular WooCommerce theme on ThemeForest (200K+ sales). Extract, inject, element ops, build_page, and snapshots all work. Detection by active theme. Shortcode
addShortcodeParser utility: Shared shortcode parsing and reconstruction for Divi 4 and Flatsome. Parameterized by tag prefix, column format, and detection patterns. Strict tag allowlists prevent cross-builder content confus
addBundled WooCommerce entitlement: Studio and Founder plans now include the WooCommerce add-on at no extra cost. Maker and Builder customers continue to purchase it separately
addContext-aware tool filtering (MCP server v6.0.0): The MCP server now filters the tool list based on detected builder and active plugins. Bricks tools hidden when Bricks is not active, WooCommerce tools hidden when WooCom
addWooCommerce snapshot safety: All existing WooCommerce write tools (create_product, update_product, update_stock) now create before/after snapshots and log to the audit trail. Previously these operations were invisible an
addFlatsome Intelligence package: 55 element definitions with attributes, types, defaults, nesting rules, and responsive patterns. 6 pre-built page patterns for AI agents
7 new Bricks-dedicated tools. Cross-site element search, page health diagnostics, Automatic.css integration, query loop discovery, style profiling, and design system export.
addCross-site element search (respira_search_bricks_elements): Search across ALL pages and templates for Bricks elements by type, global class name, or setting value. Find every instance of a specific element, audit class u
addPage health check (respira_bricks_health_check): Standalone diagnostic tool that detects orphaned elements, duplicate IDs, broken parent/child references, invalid global class references, empty containers, and heading hi
addACSS integration (respira_bricks_detect_acss, respira_bricks_import_acss): Auto-detect Automatic.css (ACSS) installation, read its color/spacing/typography variables, and import utility classes into the Bricks global cla
addQuery loop discovery (respira_bricks_query_loops): Find all Bricks elements that use query loops across the site. Filter by object type (post, term, user) or queried post type (product, page, etc.). Essential for auditin
addStyle profile learning (respira_bricks_style_profile): Analyze a page and extract its design patterns — colors used (with frequency), spacing values, typography (fonts, sizes, weights), and global class usage. Use to lea
addDesign system export (respira_bricks_design_system): Single-call export of the complete Bricks design system — global classes, color palette, theme styles, typography/variables, components, element types, and Bricks vers
65 new tools. Element-level editing across every supported builder, build_page declarative page creation, HTML-to-builder conversion, stock-image search, tool governance, and dynamic schemas for 12 builders.
addElement-level operations: find_element, update_element, move_element, duplicate_element, remove_element, batch_update (atomic), reorder_elements — works across all 11 builders via tree utility or native overrides
addbuild_page: Create complete pages from a declarative structure in a single API call. Returns preview URL
addStock images via Openverse: search_stock_images and sideload_image with CC attribution, domain allowlist, SSRF protection, and deduplication
addTool governance: Per-tool enable/disable with fail-open safety. Single chokepoint for REST + Abilities API. Audit logging
addElementor dynamic schemas: Reads control registry at runtime, maps to JSON Schema types. Settings validator with "did you mean?" suggestions
Every AI edit now has an undo button. New Changes page in wp-admin, storage management, merge-mode default for approvals, and WebMCP write-tool protection. Three months of "can you revert that?" tickets, gone.
Compact MCP responses, working-copy reuse, simpler multi-site setup, and a broad reliability pass driven by a single support ticket from a customer who asked for their money back. They stayed.
addAdded explicit live-edit preflight responses for original pages, posts, custom posts, builder module updates, and builder patch flows when direct editing is enabled. Clients must now choose editTarget: "live" or editTarg
addAdded rollback guidance for live edits, including the WordPress edit-screen URL for revisions and Respira pre-edit snapshot messaging.
addAdded support for dashboard-issued site tokens (respira_site_...) so hosted agency MCP exports can authenticate without per-site plugin-local keys.
addAdded a hosted-dashboard handoff card in wp-admin so agencies can open the dedicated account-wide MCP Setup page for all-sites exports, install commands, and AI setup prompts.
changeMulti-step write flows now reuse the current working duplicate when available and no longer create a duplicate during the confirmation-only preflight response.
changeGET /respira/v2/status now exposes whether direct editing of originals is enabled, so MCP clients can decide when to present live-edit confirmation.
Added: order results include the date each order was paid (empty until payment) and the payment method, so payment reports and reconciliation no longer need a second lookup. Requested by C.B.
changeAdded: order results include the date each order was paid (empty until payment) and the payment method, so payment reports and reconciliation no longer need a second lookup. Requested by C.B.
changeAdded: line-item details such as variation choices and personalisation fields can be requested with include_item_meta on get order and list orders. They stay off by default so standard responses stay small; hidden keys and anything named li
Fixed: listing WooCommerce subscriptions returned the same first batch on every page, so page 2 onwards repeated page 1. WooCommerce Subscriptions ignores the page number it is given, so each request now also says how many subscriptions to
changeFixed: listing WooCommerce subscriptions returned the same first batch on every page, so page 2 onwards repeated page 1. WooCommerce Subscriptions ignores the page number it is given, so each request now also says how many subscriptions to
Fixed: when a site cannot reach respira.press to check its licence, the add-on keeps working for 3 days from the last check that confirmed the licence. The grace used to restart with every failed check, so it never ran out, and it also appl
changeFixed: when a site cannot reach respira.press to check its licence, the add-on keeps working for 3 days from the last check that confirmed the licence. The grace used to restart with every failed check, so it never ran out, and it also appl
Fixed: WordPress did not show an Enable/Disable auto-updates control for the WooCommerce add-on while it was already current. The updater supplied metadata only when a newer package existed; WordPress also needs an explicit current-version
changeFixed: WordPress did not show an Enable/Disable auto-updates control for the WooCommerce add-on while it was already current. The updater supplied metadata only when a newer package existed; WordPress also needs an explicit current-version
Fixed: nine write tools could not run on hosts that block the PUT method. Those hosts are common enough that Respira already retries such a write as a POST, but these routes were registered to accept PUT only, so the retry arrived at a rout
changeFixed: nine write tools could not run on hosts that block the PUT method. Those hosts are common enough that Respira already retries such a write as a POST, but these routes were registered to accept PUT only, so the retry arrived at a rout
Added: writes now say whether the AI actually looked at what it changed. A write names an id, and until now nothing checked where that id came from, so an assistant that read your catalogue and one that carried an id over from a different s
changeAdded: writes now say whether the AI actually looked at what it changed. A write names an id, and until now nothing checked where that id came from, so an assistant that read your catalogue and one that carried an id over from a different s
Added: size limits on price and stock writes. Every write tool already checked that the caller was allowed to make the change and that the batch was not enormous. None of them checked how far the change went, so "set every product in this c
changeAdded: size limits on price and stock writes. Every write tool already checked that the caller was allowed to make the change and that the batch was not enormous. None of them checked how far the change went, so "set every product in this c
Security: text a customer typed into your checkout no longer reaches your AI assistant as-is. Customer reads returned the name, company and address lines exactly as they were entered, and a tool result is not a document: whatever is in it l
changeSecurity: text a customer typed into your checkout no longer reaches your AI assistant as-is. Customer reads returned the name, company and address lines exactly as they were entered, and a tool result is not a document: whatever is in it l
Fixed: listing orders failed outright on any store that has ever issued a refund. WooCommerce's own order query returns refunds alongside orders by default, and a refund is not an order: it carries no order number, no customer and no billin
changeFixed: listing orders failed outright on any store that has ever issued a refund. WooCommerce's own order query returns refunds alongside orders by default, and a refund is not an order: it carries no order number, no customer and no billin
changeAdded: order lines. Order reads now return each line with its product, its variation and its quantity. Counting sales for one size of a variable product was not possible before: only a total item count came back, and the product report grou
changeFixed: the add-on's test runner only ever ran the tests inside its standalone folder, so two test files sitting next to it, including the one written for an earlier version of this exact refund bug, had never run once. That is why the same
Fixed: setting a category image did nothing and said it worked. update-category only ever read name, slug, description and parent, so image_id fell through untouched, the update ran with nothing to change, and the unchanged category came ba
changeFixed: setting a category image did nothing and said it worked. update-category only ever read name, slug, description and parent, so image_id fell through untouched, the update ran with nothing to change, and the unchanged category came ba
Added: order reads now return customer_ip_address, customer_user_agent and meta_data. Without the request fingerprint and the order meta, the order tools could not support payment-fraud triage at all, and the reporter kept a competing plugi
changeAdded: order reads now return customer_ip_address, customer_user_agent and meta_data. Without the request fingerprint and the order meta, the order tools could not support payment-fraud triage at all, and the reporter kept a competing plugi
changeFixed: the add-on's own test runner exited before printing its results, so a failing test could report success. Any test sorting before version-surfaces was swallowed and the suite still exited zero.
Fixed: the update notice for this add-on could never clear itself. 4.0.2 bumped the plugin header but not the version constant underneath it, and the constant is what the updater reports to the server as your installed version. So every sit
changeFixed: the update notice for this add-on could never clear itself. 4.0.2 bumped the plugin header but not the version constant underneath it, and the constant is what the updater reports to the server as your installed version. So every sit
Fixed: a site running both Respira and this add-on printed "Ability category respira-woocommerce is already registered" on every request. Both plugins registered the same category, so with the add-on installed the collision was guaranteed r
changeFixed: a site running both Respira and this add-on printed "Ability category respira-woocommerce is already registered" on every request. Both plugins registered the same category, so with the add-on installed the collision was guaranteed r
Fixed: an agent orders summary could 500 the whole site on hosts that answer plugin bootstrap before WooCommerce finishes waking up. It now waits for WooCommerce's own readiness signal before touching order data, and falls back to an honest
changeFixed: an agent orders summary could 500 the whole site on hosts that answer plugin bootstrap before WooCommerce finishes waking up. It now waits for WooCommerce's own readiness signal before touching order data, and falls back to an honest
changeFixed: the Observe governance profile closed only 42 of 277 tools despite its own description promising every write closed. It computed its blocked set from an eleven-family category registry, and a tool in no family was never considered; i
changeFixed: add_sale_badge and add_low_stock_badge were flagged read-only while actually writing, which meant a governance profile closing writes left them open and the transport withheld the retry fields that make an interrupted write safe to r
changeFixed: convert_html_to_builder with no builder specified threw a type error on any block-library site (GreenShift, Spectra, Kadence Blocks, GenerateBlocks) instead of converting, because auto-detection asked "is this Gutenberg" by name inst
changeFixed: all five WooCommerce card/checkout tools now declare edit_target and verification_marker in their schemas; the backend has always forwarded both, but no schema advertised them, so they were unreachable from any client.
Storefront intelligence is now FSE-first with page-builder fallback. On a block theme, analysing a shop page returns real structural analysis against the native archive-product template instead of "no page builder detected". The two badge t
changeStorefront intelligence is now FSE-first with page-builder fallback. On a block theme, analysing a shop page returns real structural analysis against the native archive-product template instead of "no page builder detected". The two badge t
changeSale and low-stock badges are POSITIONED: they anchor inside the product image, matching WooCommerce's own card structure, instead of being appended after the add-to-cart button. If a badge is already present the write is refused as a no-op
changeAdded product-card field addressing: discover the card's composition and set attributes on one named field, by canonical WooCommerce block name. Attributes are intersected with the installed block's registered attributes, so an unrecognised
changeupdate_checkout_layout no longer returns "no page builder detected" on a block theme. It returns the honest capability error its sibling tools already returned.
changeThe missing-changes error no longer advertises a parameter that does not exist. It names only the keys the handler reads.
changeThe legacy woocommerce/product-query block is recognised during discovery, so a store on an older card block is no longer told it has no product grid.
Fatal error on HPOS stores (PHP 8). The daily license check, which also gathers a small agent-orders summary for the dashboard, could run on the plugins_loaded hook before WooCommerce initialized its order data store. On stores using High-P
fixFatal error on HPOS stores (PHP 8). The daily license check, which also gathers a small agent-orders summary for the dashboard, could run on the plugins_loaded hook before WooCommerce initialized its order data store. On stores using High-P
Thrive Architect product pages — description edits didn't appear on the frontend — bulk_update_products with description / short_description wrote to post_content via WooCommerce setters, but Thrive Architect renders from its own wp_postmet
fixThrive Architect product pages — description edits didn't appear on the frontend — bulk_update_products with description / short_description wrote to post_content via WooCommerce setters, but Thrive Architect renders from its own wp_postmet
Product category CRUD endpoints and MCP tools (list/get/create/update/delete).
addProduct category CRUD endpoints and MCP tools (list/get/create/update/delete).
addProduct tag CRUD endpoints and MCP tools (list/get/create/update/delete).
changeProduct create/update now supports category and tag assignment payloads for safer taxonomy-aware catalog workflows.
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.