v0.0.44 — a Database screen, All in One SEO, and file paths that find your theme

New in 0.0.44

A Database screen, so you decide what an AI client may do to your data. Until now the database abilities were governed by nothing you could see or set. AcrossAI Settings → Database now carries the controls: an access mode of unrestricted, read-only or off; a denylist of tables nothing may touch; a ceiling on rows any one query may return; and a time limit so a heavy query cannot run away with the server. Read-only means exactly that — every write ability refuses with a message naming the setting that stopped it. Two tables are denied permanently and cannot be allowed from this screen or any other: the one holding password hashes and the one holding session tokens and reset keys. A query that reaches either through a subquery, an alias or a join is refused too, because the tables a statement really touches are resolved by asking MySQL what it parsed rather than by reading the SQL ourselves. The screen lists every table on the site, so a denylist entry is chosen rather than typed from memory.

A twelve-ability All in One SEO suite — the settings AIOSEO itself cannot write. AIOSEO's own abilities read its settings and say so plainly: "settings cannot be modified via abilities — use the AIOSEO admin UI". So an assistant could describe your SEO configuration and change none of it. aioseo/get-settings-panel returns one named panel with every field's type, default and current value, and aioseo/update-settings-panel writes them through AIOSEO's own sanitiser, so a sitemap change regenerates the sitemap and a permalink change flushes rewrite rules exactly as the admin screens would. Plus sitemap health, settings backups, bulk post SEO, status and notification dismissal — and AIOSEO's own thirteen abilities now appear together as an All in One SEO toolset instead of being filed under "Other".

Fixed: on many managed hosts the file abilities could not see your theme or plugins. WordPress does not require wp-content to sit inside the WordPress folder, and several large hosts put the two in different places. Every file ability assumed otherwise. On those sites wp-content/themes/your-theme/functions.php was reported as an invalid path, and a listing of wp-content/plugins showed three entries instead of your fifty. Worse, reading a file that existed in both places returned the copy shipped with WordPress and called it a success, with nothing to say it was not yours. Paths now resolve against the directories WordPress itself reports, each answer says which directory it came from, and a path that would land on the unused copy is refused and names both candidates. The same mistake had been pointing the write allowlist's shipped default at the wrong directory, and leaving your live plugins and themes folders out of the list that protects them from a recursive delete.

Fixed: the backup abilities were missing from exactly the sites they were meant to answer for. All seventeen UpdraftPlus and All-in-One WP Migration abilities are registered whether or not those plugins are installed, deliberately, so that updraftplus/get-status is there to tell you the site is not backed up. But the family they belong to was only declared when the plugin was detected, and WordPress discards an ability whose family it does not know — without an error anyone would see. So on those sites all seventeen silently did not exist, and asking "is this site backed up?" got no answer rather than a no.

Fixed: asking about a plugin by its folder name was answered with "not installed" for a plugin that was installed. plugins/get-plugin-lifecycle-context matched only the exact plugin file, and reported anything else as absent rather than unrecognised — a statement about your site that was simply untrue. It now accepts a folder name, display name, plugin file or partial match, exactly as activating and deactivating already did.

Breaking changes

Unlike recent releases, this one has two.

Two Rank Math abilities are renamed. Rank Math now ships abilities of its own, and two had the same names as ours. WordPress gives a name to whichever plugin registers first, so one side lost its ability outright and the winner depended on load order.

Old nameNew name
rank-math/get-settingsrank-math/get-settings-panel
rank-math/get-sitemap-statusrank-math/get-sitemap-health

Both sets now work side by side and reach the same toolset. If you call either by its old name, update the name — nothing else about them changed.

Two Rank Math abilities are retired, because Rank Math ships better versions:

RetiredUse instead
rank-math/set-module-staterank-math/set-module-status (Rank Math's own — several modules per call, checks dependencies)
rank-math/get-seo-analysis-resultsrank-math/audit-site-seo (Rank Math's own — can re-run or audit a single URL)

Both replacements are in the same Rank Math toolset, so nothing moves.

Full changelog: see README.txt, with the complete history in changelog.txt.


Keep reading