Skip to content

WPPilot 1.2.0

Choose a tag to compare

@wppilot-labs wppilot-labs released this 13 Aug 20:10
· 66 commits to main since this release
8d408d1

Agents could see what was installed and change none of it. This release closes that.

Plugin and theme lifecycle

Eleven new abilities: search-extensions, get-extension, activate-plugin, deactivate-plugin, update-plugin, update-theme, switch-theme, install-plugin, install-theme, delete-plugin, delete-theme.

The free ability count is now 103, up from 92.

How they are classified

Risk follows what each operation does to the server, not what it is called.

  • Install and delete fetch and write executable code, the same class of operation as execute-php. Critical: blocked under Production Safe and Read Only, available under Developer Full Access with explicit confirmation.
  • Activate, deactivate, update, switch theme fetch nothing and write no files, so they stay usable on a live site. Each one can still take a site down, so all four require confirm: true.

The destructive classifier matches specific names rather than bare update- or activate- prefixes. A prefix match would have swept in update-post, update-media, update-term, update-menu, update-site-settings and activate-design, putting a confirmation gate on ordinary edits.

Safety

  • DISALLOW_FILE_MODS is honoured through wp_is_file_mod_allowed() before any file operation begins, so a site that has opted out of code changes gets a named refusal instead of a partial install.
  • Direct filesystem access is required and checked up front. WPPilot runs headless, where request_filesystem_credentials() has no screen to render an FTP form on, so any other method is refused by name rather than stalling half-written.
  • WPPilot and WPPilot Pro cannot be deactivated or deleted through these abilities. Doing so mid-call severs the connection carrying the call and, on a remote site, removes the way back in.

Downloads

Install wppilot-1.2.0.zip. The GitHub "Source code" archive is not installable: it lacks vendor/ and unpacks to the wrong folder name.