The AER release. Your site remembers, keeps its art direction, hears your clients and checks its security when you ask, and Respira AER is the first place that uses all of it at once. Nothing breaks: keys, connections, settings and snapshots carry over, and the plugin still needs only WordPress 5.8 and PHP 7.4. 9.0 also carries the 8.9.5 and 8.9.6 fixes, among them a bug where editing an Elementor page could change its accented letters (é saved as u00e9) and its line breaks: updating fixes it, and a page that was changed can be restored from its snapshot in Activity.
Across the 8.x line, over 130 releases in seven weeks, the plugin stopped being a bridge with builder smarts and became the site's half of an agent workspace. It remembers the site and enforces its rules at the moment of the write (site memory, 8.3 and 8.6). It knows its art direction and checks pages against it (Art Direction, 8.5 and 8.6). It lets clients talk back, typed or spoken, through Murmur links (8.9). It lands a designed page as native builder modules: a page that scored 17 out of 100 as a conversion scores 100 on Divi 5 in fidelity mode (8.8.34). And it proves what every write did, with write receipts, a sealed audit log, a guard against collateral damage and fenced untrusted text (8.3 to 8.8). Along the way it gained 32 MCP tools in five families (Murmur, Art Direction, site memory, Divi presets and library, security), GreenShift as the 17th builder, access profiles, governance on every REST write, and security scans matched against known vulnerabilities for plugins, themes and WordPress itself.
Respira AER, which opens with this release, uses all five together, across every site you connect, from a browser on a laptop or a phone. 9.0 brings it into wp-admin: open a site or a page in Respira AER from where you work, see whether Respira AER can work on the site and why, and read your clients' Murmur notes next to the rest of the site's activity. The security audit runs when you or your agent ask for it, from any app you connect, and every app now gets the same answer, known vulnerabilities included, with tools to fix what it finds. Nothing scans on its own. And the plugin got lighter: no Sentry, no Google Fonts, no hidden old admin, and nothing on your visitors' page views. Respira AER 0.2 arrives alongside, with the same readiness checklist for each site and passes for a security review, a client report and a review loop.
add Open this site in Respira AER from wp-admin. When your plan includes Respira AER, Home
has a Respira AER card that opens this site in it, the Respira AER row in Connected apps
opens it too, and the admin bar offers "Ask Respira AER about this page" on any single page
or post and in the editor, with the page already named in the prompt. Provider keys stay on
respira.press. None of it shows on a white-labelled site.
add Ready for Respira AER. A checklist on Home says in plain words whether Respira AER can
work on this site: the licence, whether respira.press has reached the site recently, whether
the access profile or the site's policy allows writes, whether your server passes the
Authorization header through, and what your plan includes. Respira AER reads the same
checklist from the site, so both sides give the same reasons.
add Client feedback in wp-admin. Activity has a Feedback tab: live Murmur review links with
copy and revoke, the notes your clients left grouped by page with the element each one
points at, reply and resolve, a new review link for any page, and "Open in Respira AER" on
every open note. Home tells you when client notes are waiting. Below the Builder plan,
existing notes stay readable and the screen says what the plan includes.
add Your agent can write the client report. generate_activity_report reads the site's
activity log for any period and returns what changed, concrete examples and time saved, on
the npm server and on the plugin's own MCP endpoint. The seven Respira skills that call it
now work.
add Two new tools fix what the security audit finds. update_theme updates a theme the
audit flagged. revoke_application_password removes an application password you do not
recognise, using the id the audit reports. Both ask for your approval first, and the
password the request itself signed in with is never revoked.
add A new major version says what it brings before you update. An update that crosses a
major version now carries a one-line notice on Dashboard, Updates and under the plugin's row
on the Plugins screen: what the release brings, that nothing breaks, and the minimum WordPress
and PHP versions. A notice sent by the update server takes its place when there is one.
change What's new describes 9.0. The About screen tells the AER release and the 8.x line behind
it, reads the version from the plugin itself, and no longer shows counts and versions that
went stale.
change The welcome screen shows today's three steps: link the site to respira.press, connect
Respira to your AI coding tool or open Respira AER, then ask for the three most recent posts.
change Memory and Art Direction open the right dashboard page. "Edit in dashboard" goes to this
site's Memory or Art Direction page on respira.press instead of the list of sites, and both
screens can hand the work to Respira AER.
change Old Respira admin links open the current screens in one step. Logs, Thank you, Approvals
and the other addresses from before 7.1 open the matching screen of the current admin. Logs
and Thank you used to open the old design.
change Add-ons lists what you can buy today, the WooCommerce add-on and White label, instead of
two add-ons that were never released.
change Plans bought before the current pricing show as Starter (legacy) or Agency (legacy) in
Settings.
change Reports, Divi migration explains the readiness scan your agent can run, instead of saying
the scanner is not available.
change The Respira menu: Prompts is back in the WordPress sidebar, and the Founders page is no
longer in it.
change Visitors' page views no longer touch Respira's tables. The list of abilities Respira
exposes is rebuilt only when something it depends on changes (an update, a playbook, an
Inhale choice, the WooCommerce add-on), instead of on every request.
change Usage reporting never slows down a change. Usage events are sent after the response,
without waiting for an answer, and go straight to www.respira.press. The per-call usage
counts now follow the opt-out switch in Settings (respira_usage_opt_out), as the other
reports already did.
change A lapsed licence is checked at most every 15 minutes, instead of on every request that
asked.
change get_core_web_vitals measures instead of estimating. It runs Google PageSpeed Insights
and returns LCP, CLS and INP from real visitors when Google has the data, and it accepts a
URL and a mobile or desktop strategy.
change On the plugin's own MCP endpoint, update_option accepts any JSON type, plus the
allow_type_change and allow_object_overwrite flags, the same as the npm server.
change The Respira admin loads no fonts from Google. Its typefaces ship inside the plugin, so
wp-admin sends nothing to a font service and looks the same offline or behind a strict
security policy.
change Tested up to WordPress 7.1, written in one place. The updater kept its own copies of
"requires at least", "tested up to" and "requires PHP", and they drifted from the plugin
header, so the update screen kept saying 7.0. It now reads the header, and an update server
that describes the new version wins. Every respira.press address the updater calls uses
www, so no request loses a redirect on the way.
change The release zip carries only what runs. One exclude list builds both the release zip and
the free build. The JSX and TypeScript sources, build scripts, developer tools and
.env.example no longer ship in the release zip; the free build keeps the sources, because
WordPress.org asks for the readable source of every minified file. The licence files of
bundled packages now ship, and the build fails if the list ever drops a file the plugin
reads at runtime.
change The readme tells the truth about what leaves your site. A first-person privacy section,
and an External services section that lists every call the plugin makes: what is sent, when,
why and how to stop it. The description leads with the three ways in (your AI app, Respira
AER and WebMCP), the FAQ covers today's flows, and the changelog keeps the last ten releases
with a link to the rest.
change Translations have one home. The bundled WebMCP screens and messages use the Respira text
domain instead of the upstream plugin's, and the header no longer points at a languages
folder that never shipped. A translation placed in wp-content/languages/plugins still loads.
fix Murmur stays out of page-builder editors. A stale or revoked review session can no
longer mount the Murmur bar inside Divi's Visual Builder shell or canvas; the same guard
isolates the frontend editing URLs used by Elementor, Bricks, Oxygen and Beaver Builder.
fix Plugin folders with spaces can be managed. Activate, deactivate, update and delete now
accept the exact folder name WordPress reports instead of rejecting the route or looking for
a different, sanitized folder.
fix A host-level LiteSpeed cache is no longer invisible. When the server identifies as
LiteSpeed but its WordPress purge API is unavailable, cache reports say that stale HTML may
remain at the host and point to the hosting control panel. Respira does not claim to have
purged a layer it cannot reach.
fix WordPress 5.8, the minimum the plugin declares, works again. Four newer PHP string
functions were replaced.
fix Deactivating Respira stops all of its scheduled tasks, including the Murmur relay and
background jobs.
fix The "Setup guide" links in the one-click install grid open the right page on
respira.press. They used to open a missing page on your own site.
fix The Divi 5 migration readiness report links to the right page.
fix The command palette counts 17 page builders, the same as the Builders screen.
fix Divi 5 duplicates can be edited independently. A copied element and every child now get
fresh internal IDs, while links and other semantic references stay unchanged.
fix The Divi 5 pricing shortcut creates Divi's real pricing structure. It writes a Pricing
Tables container with a Pricing Table child and keeps the plan's content on that child.
fix Divi 4 keeps third-party modules that Divi registered. A targeted edit beside a WPForms
selector no longer refuses the whole write or drops the form module on round trip.
fix The companion MCP server 8.3.25 accepts the page ID names agents already use. Duplicate
Page takes original_id, page_id or post_id and rejects a missing ID before any request.
fix In Settings, Browser AI, switching off "Publish all tools" lets you pick categories,
instead of switching itself back on. The last category stays on, because none would mean all.
fix Admin messages and several screens read more plainly, Home, Activity, Setup and the admin
bar among them, and the notices shown when both the free and the full plugin are installed.
The network admin page is now called "Network sites and seats".
rm Sentry. Respira no longer loads Sentry's script in wp-admin and no longer sends the
administrator's email and name to it. The plugin is about 1.7 MB smaller.
rm The previous admin design. It loaded hidden behind the current one on every Respira
screen, and could flash on a slow connection.
rm The weekly accessibility task, which recorded a scan that never ran.
rm The "Enable" switch on the optional Settings, WebMCP page, which had no effect. Its public
discovery and per-tool settings stay.
rm The Respira AER key box added in 8.7.0, which no screen could reach. Provider keys for
Respira AER stay on respira.press.
rm The duplicate translation loader left over from when Inhale was a standalone plugin, and
the Domain Path header that pointed at a folder the plugin never had.
sec A dry run no longer skips approval on a tool that cannot dry-run. The REST route let
dry_run: true past the approval gate for every tool, but only make_responsive, the design
token tools and apply_design_direction preview on that flag; the rest ignored it and wrote,
so update_theme or revoke_application_password could run without a token. The skip now
applies only to the tools that preview. The MCP transport never had the skip.
sec The security audit runs when you ask, and every app gets the same answer. You or your
agent run it from any app you connect: Claude, ChatGPT, Cursor and the others, Respira AER,
or wp-admin's own endpoint. Nothing scans on its own. Every app gets the same answer from the
same tool, known vulnerabilities included: which installed plugin, theme or WordPress version
matches the known vulnerability database (Wordfence Intelligence, matched on respira.press),
how serious it is, and which version fixes it. When the database cannot be reached, the audit
says so and never reports the site as clean.
sec Core security updates follow WordPress.org. When WordPress ships a security release for
your branch, Respira can apply it the same day, without waiting for a Respira update first.
Moving a site to a different WordPress branch is still refused.
sec Every plugin and theme update checks the site afterwards. The result now includes a
health check (the REST API, the front page, and any fatal-error page), and tells the agent
to stop a batch of updates when the site stops answering normally.
sec A deep scan only reads. The one check that writes a file (a harmless test file in
uploads, to see whether the server would run PHP there) now has its own switch,
probe_uploads_execution, and is off unless asked for. Security scans no longer set off
file-change monitors.
sec Scan coverage is honest. Each bounded scan gets its full time budget, and the check for
unexpected files in WordPress core says when it stopped early instead of reading as complete.
sec Only administrators can run the security audit.
sec Switching the Security category off in Settings, Browser AI switches off every security
tool. The category now holds the audit, core security updates, theme updates and
application password revocation. The audit and core updates used to sit under Site and
context tools, so they stayed on.
sec "Delete everything" on uninstall deletes everything. It now also removes Murmur's
reviewer data (names, emails and IP hashes), the WebMCP settings and the Inhale selection.
The Inhale selection stays when the standalone Inhale plugin is active, because the two
share it.