Skip to content

WPPilot 1.16.0 — Pro basics in Free, session undo, local stdio, read-file locked to Developer Full Access

Choose a tag to compare

@wppilot-labs wppilot-labs released this 30 Sep 19:29
f4ac3a2
  • New, formerly WPPilot Pro: WooCommerce basics. wppilot/woocommerce-check-setup, list and read products and variations, product categories and tags, store settings, and read orders and customers (orders and customers also need manage_woocommerce), with the input and output Pro gives them. wppilot/woocommerce-edit-product edits one product's name, description, prices and stock, saves through WooCommerce so its lookup tables and caches follow, keeps backslashes, and can be undone from the Changes screen: the undo writes the old values back through WooCommerce and says which fields did not come back. Bulk prices and stock, order and customer writes, refunds, coupons, reports, shipping, tax, gateways and full product editing (SKU, categories, images, attributes) stay in Pro, whose richer edit-product takes over when Pro is active.
  • New, formerly WPPilot Pro: one post's SEO title, meta description and robots in Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework, Slim SEO and SmartCrawl (a get and an edit per plugin, under the names Pro uses; only the active plugins' abilities register). A raw meta write could trip Yoast's 0/2/1 noindex codes or AIOSEO's all-or-nothing robots switch; these write the way each plugin's own editor does. Every write keeps a before-image of exactly what it changed and wppilot/rollback-change restores and checks it; AIOSEO, which keeps SEO in its own table, is restored through its own model. Slim SEO cannot force index and has no follow flag, and SEOPress has no per-post force-index; the descriptions say so. Focus keywords, canonicals, social previews, schema, redirects and bulk SEO stay in Pro, whose richer per-post abilities register first on a site running it.
  • New, formerly WPPilot Pro: read-only forms. List the forms of WPForms, Contact Form 7, Gravity Forms and Forminator, and read their entries (Contact Form 7's through Flamingo; WPForms entries need WPForms Pro). Entries come with email and phone answers, passwords, card data, uploads, signatures and the IP withheld, and email addresses and phone numbers cut out of free text; full values, exports and form editing are Pro's.
  • New, formerly WPPilot Pro: backup and security status. wppilot/backup-status and wppilot/backup-list read UpdraftPlus, Duplicator 5 and BackWPup; wppilot/security-plugin-status, wppilot/security-scan-findings and wppilot/security-lockouts read Wordfence and Solid Security, with IP addresses shown as /24 or /48 networks and logins masked. Starting a backup, the require-a-fresh-backup hold, safe updates, hardening, IP blocks and scans stay in Pro.
  • New, formerly WPPilot Pro: scheduled audits. A routine runs the read-only accessibility, content and media alt-text audits on WP-Cron, daily or weekly in the site's timezone, stores each run, compares it with the one before (new, resolved, changed) and emails the administrators it names. wppilot/routines-list and wppilot/routines-report read; wppilot/routines-save and wppilot/routines-delete can be undone from Changes; wppilot/routines-run-now queues a run. A Routines screen under Activity has a Run now button. Routines made with Pro keep running unchanged: the storage, cron hooks and undo are the same.
  • New: undo a whole agent session. Every write an agent makes is filed under its session - one MCP connection, one wp wppilot mcp serve process, or one credential and client until it has been idle for 30 minutes - and wppilot/undo-session takes back everything that session did, newest first, each change verified against its before-image. Before writing anything it checks that nothing else changed a target after the session did; if something did, nothing is changed and the conflict is named (which change, which fields, which later edit). It stops at the first change that fails verification and reports what was undone, what failed and what was not attempted, and a change that cannot be undone is listed rather than skipped (the run is refused unless allow_partial is true). wppilot/redo-session puts an undone session back under the same checks, verified against the state the change first produced. wppilot/list-sessions lists sessions and shows what undo and redo would do now. The Changes screen lists recent sessions and has Undo session and Redo session buttons on a session's view. Works for Pro's writes that go through the change log.
  • New: a local connection over WP-CLI. wp wppilot mcp serve --user= serves the same MCP server as /wp-json/mcp/wppilot over stdio, for Claude Code, Cursor or a CI job on the machine that runs the site, with the same abilities, safety profile, confirmations and permission checks and no credential to create. The Connect screen shows the claude mcp add command and a Cursor mcp.json with this site's path filled in.
  • New: native OAuth entries for Zed, Cline, Kilo Code, OpenCode, Amazon Q / Kiro and OpenClaw, which now run the sign-in themselves (only Roo Code still uses the mcp-remote bridge on a public site), and OAuth tabs for Kimi Code CLI, Qwen Code, ZCode, Factory Droid and OpenClaw, which had none (Gemini CLI gets one on a local site; its public-site entry is still to come). Manus can take an access token, as its documentation lists Bearer tokens for custom servers.
  • Works beside WPPilot Pro 1.10.0, which still carries its own copies of all of the above: Pro registers first, and each of these abilities stands aside for a name that is already registered instead of registering it twice, so nothing changes on a site running Pro 1.10.0 until Pro's next release. While Pro 1.10.0 runs routines, the free copy stays off, so no routine runs twice.
  • Kits: runtime 1.2 adds Runtime\unclaimed(), kit.json requires.any (a kit serving whichever of several plugins is active) and a SessionLedger host interface through which a kit lets session undo check and redo its own kind of change (the WooCommerce product edit, All in One SEO and routines use it), and loads Pro-tier kits ahead of Free ones in an export, so a richer copy of an ability wins there as it does inside WPPilot. scripts/test-kit-coexistence.php loads Pro's kits in the order Pro's engine does and takes --installed-pro= to prove Free stands aside for a release that still carries the same abilities.
  • Fixed: wppilot/delete-comment deletes a comment permanently, but the change log filed it as a reversible status change, so the Changes screen and session undo offered an undo that could only fail. It is now recorded as irreversible.
  • Fixed: wppilot/delete-theme failed on every MCP call with "undefined function delete_theme()", because WordPress does not load its theme admin functions on REST requests.
  • Fixed: wppilot/adopt-design-from-site threw a TypeError on themes whose spacing sizes have numeric slugs, such as Twenty Twenty-Five.
  • Fixed: wppilot/update-media and wppilot/upload-media dropped backslashes from alt text, because WordPress unslashes meta on write.
  • Fixed: the approval, OAuth consent, Block Editor Queue, visual runtime and Connected Apps screens logged a PHP deprecation on every load because they had no title.
  • Fixed: the Dashboard's list of recent changes logged a WordPress notice for every change made by an ability that is no longer registered, such as an SEO plugin's edit after that plugin was switched off. It now reads the label only for abilities still registered.
  • Fixed: every call made through the legacy MCP transport recorded a second change row for the adapter's execute tool, reads included, each saying "No supported before-image". The target ability's own row is unchanged; the extra row is no longer written.
  • Fixed: generated client configuration that no longer matched the clients' own documentation (each re-checked against the vendor's docs on 2026-09-30, with the source cited in the code). Kimi now targets Kimi Code CLI (/.kimi-code/mcp.json, /mcp-config, and /mcp-config login for OAuth) instead of the archived Python kimi-cli. GitHub Copilot snippets are for Copilot CLI (/.copilot/mcp-config.json or .github/mcp.json, "mcpServers" with "tools"), since .github/copilot/mcp.json is not a documented location and Copilot CLI rejects the "servers" key; the notes say Copilot Chat in VS Code uses the VS Code tab and the cloud agent cannot use OAuth. Devin Desktop lists ~/.config/devin/mcp_config.json alongside the old Windsurf path. Kilo Code entries go in kilo.jsonc under "mcp". OpenClaw's token entry uses mcp.servers with transport "streamable-http" (it fell back to SSE before). Zed connects natively instead of through mcp-remote, without the retired "source" field. Claude Desktop's access-token entry runs through the mcp-remote bridge, because claude_desktop_config.json is for local servers. The Claude Code note no longer says /mcp shows a working token as "needs authentication", the Antigravity IDE hint names the IDE's own menu, and Roo Code points to Cline or ZooCode.
  • Fixed: the change history hid fewer credentials than it should. Option names such as LiteSpeed's object-pswd and cdn-cloudflare_key, NitroPack's siteId, Autoptimize's ccss_key and any *_pass, *_pwd or *_auth key were shown in plain text in get-change, list-changes and the Changes screen; they are now withheld like passwords and tokens.
  • Fixed: wppilot/read-file and wppilot/list-directory ran under Production Safe and even Read Only, because a read-only ability passed every profile, so an agent on those profiles could read wp-config.php with its database password and authentication salts. Both now need Developer Full Access like the other server-file abilities, and each call is recorded in the change log.
  • The change log table gains two columns (session_id, redo_data); existing rows are kept and carry no session.
  • 48 new abilities (216 in all). wppilot/read-file and wppilot/list-directory now need Developer Full Access; no other existing ability changed its permissions, and existing connections keep working and do not need re-authorising.