Changelog
What changed in the worker plugin, per stable version. Newest first.
Every version listed here was published as a stable release; a version appears once, on the day it was published, with each change as the plugin's own changelog states it. What you read on a site's View details screen for the plugin is the same list.
2.3.1 – 15-09-2026
- Fixed – backups: A plugin table named like the WordPress options table is backed up and restored whole instead of failing every backup of the site
- Fixed – commands: A task that ends in an error, or runs out of time or memory, is reported to WP Octo as failed instead of being lost, so WP Octo no longer waits on it for hours or starts it over
- Fixed – credential: A credential WP Octo refuses once is offered again after a growing pause instead of being dropped for good, and the site reports the refusal so WP Octo can hand over a new one
- Fixed – credential: When WP Octo hands over a credential, the site confirms what it actually stored and reports a store that did not persist instead of confirming a credential it does not hold
2.3.0 – 08-09-2026
- Added – sync: The site reports its plugins, themes, users, core, health and backups to WP Octo on its own schedule, so a firewall that blocks WP Octo no longer leaves stale data
- Added – commands: WP Octo hands the site signed, single-use instructions it carries out on its own clock, including a backup, an upload to storage, a release of its copy, a restore and its own update
- Added – credential: Each site holds a credential of its own for talking to WP Octo, issued once and replaced on request
- Added – auth: WP Octo's credential can travel in a header of its own, so a plugin that owns the Authorization header no longer stands in the way
- Improved – updates: A last-resort WP Octo address is used when the remembered one has failed for a day
- Fixed – restore: A restore keeps the site's connection to WP Octo and the work in flight instead of rolling them back to the backup's day
- Fixed – backups: A scheduled backup that fails while continuing on cron is reported instead of stopping silently
- Security – backups: The site's credentials toward WP Octo are never written into a backup
2.2.3 – 07-09-2026
- Fixed – backup: a forced restart whose cleanup fails unexpectedly no longer leaves the site locked for other operations
2.2.2 – 07-09-2026
- Fixed – backup: a forced restart clears the previous run even when its manifest is missing or unreadable
- Fixed – backup: a forced restart that cannot remove the previous files is refused instead of starting a new backup on top of them
2.2.1 – 07-09-2026
- Fixed – backup: a forced restart of a backup the site already knows clears the previous run before starting over
- Fixed – restore: a backup that never completed, or whose manifest lists no files, is refused instead of restored from whatever is in its folder
- Fixed – backup: downloading a backup chunk no longer hangs on sites where another plugin keeps an output buffer open
2.2.0 – 07-09-2026
- Added – Backups: Brings a backup that only exists in external storage back onto the site before restoring it
- Fixed – Restore: Refuses to restore a backup whose files are not on the site instead of restoring what happens to be there
- Improved – Backups: Reports whether a backup's files are actually on the site
- Fixed – Backups: Keeps a backup listed after its local copy is released
- Fixed – Backups: Starting a backup twice no longer restarts one that is still running
- Fixed – Backups: Sends large backup files whole instead of an empty response
2.1.9 – 06-09-2026
- Fixed – Updates: Keeps the site available while WP Octo updates itself
- Fixed – Updates: Refuses to start on an incomplete installation instead of breaking the site
- Fixed – WordPress updates: Reports a successful WordPress core update as successful instead of failed
- Fixed – WordPress updates: Reads the WordPress version and the available update reliably
2.1.8 – 06-09-2026
- Fixed – Maintenance mode: Stops holding a site after four hours when an update round cannot finish
- Security – Maintenance mode: Lets only the WP Octo REST routes through and no longer trusts a spoofable request header
- Improved – Maintenance mode: Stages, verifies and atomically replaces the maintenance flag, and refuses unsafe filesystem transports
- Fixed – Health check: Recognises active, expired, legacy and unknown maintenance files
2.1.7 – 05-09-2026
- Security – REST API: Prevents WordPress page caches from serving an authenticated response to anyone
2.1.6 – 05-09-2026
- Security – REST API: Prevents shared caches from exposing authenticated WP Octo responses
2.1.5 – 04-09-2026
- Fixed – recovery-enrollment: Safely pairs MU recovery credentials between WP Octo and the worker
2.1.4 – 04-09-2026
- Fixed – delete-plugin: Prevents WP Octo from deleting itself through the worker API
2.1.3 – 04-09-2026
- Added – Recovery: Restores WP Octo from the platform when the plugin itself cannot load
- Added – Recovery: Starts and verifies a rollback while the plugin is unavailable
- Security – Recovery: Closes out-of-band enrolment so only the paired platform can recover a site
2.1.2 – 04-09-2026
- Fixed – Restore: Restores a partial backup instead of refusing incomplete component sets
- Fixed – Update rollback: Runs the rollback that previously never executed
- Fixed – Plugin backup: Authenticates plugin backup over the REST API
- Fixed – Maintenance mode: Authenticates maintenance mode over the REST API
2.1.1 – 23-08-2026
- Improved – Release build: Produces an identical zip and checksum from the same source
2.1.0 – 23-08-2026
- Added – Self-update: Installs a release when WP Octo says so, not on the next admin page load
- Added – Self-update: Keeps a rollback copy outside the plugin directory before every update
- Added – Safe mode: Restores the previous version without loading the plugin
- Added – Self-update: Verifies the SHA-256 of a package before unpacking it
- Added – Self-update: Reports what is installing, what failed and whether a rollback is available
- Improved – Update check: Reports that an update exists without installing it
- Improved – Self-update: Asks WP Octo what this site may install instead of reading one shared file
- Improved – Self-update: Learns the platform address from the platform's own authenticated calls
- Improved – Self-update: Installs through the WordPress upgrader so hosts without direct file access work
- Fixed – Self-update: Restores the previous copy when an update fails instead of leaving no plugin directory
- Fixed – Self-update: Keeps file permissions across a rollback
- Security – Self-update: Refuses any update not confirmed by WP Octo for this site at that moment
- Security – Self-update: Accepts packages only over https and never from inside the site's own network
2.0.0 – 23-08-2026
- Added – Analytics: Reports visitors first-party and cookieless, with no cookie banner needed
- Added – Activity log: Records what happened on the site, grouped per request, with export and notifications
- Added – Error log: Separates broken links on your own pages from bad inbound links and scanner traffic
- Added – Error log: Creates a redirect straight from a failing request
- Added – Email log: Shows what happened to each message, with delivery diagnostics and retention limits
- Added – Email log: Checks whether the sending domain is set up to be believed
- Added – Login attempts: Lists which usernames were tried, whether they exist, and their role and two-factor state
- Added – Login attempts: Allows, blocks and exports attempts, individually or in bulk
- Added – Danger Zone: Resets settings or removes WP Octo data, taking a recovery snapshot first
- Added – Security settings: Locks out repeated failed logins and sets how long a session lasts
- Added – Security settings: Checks file integrity and offers a read-only mode that closes the front end
- Added – Update control: Holds individual plugins and themes back from updates
- Added – Overview: Shows what needs doing, recent activity and trends on one screen
- Added – Notes: Records a note against a plugin or a theme
- Added – Backups: Backs up a single plugin, a single theme, or core on its own
- Added – Safe mode: Provides standalone entry points that keep working when the site is broken
- Added – Translations: Ships in English and fully translated into Dutch
- Improved – Authentication: Accepts the workspace token as a Bearer credential and nothing else
- Improved – Magic login: Uses a one-time ticket valid for sixty seconds instead of a credential in the address
- Improved – Backups: Stores backups in a directory whose name carries a secret
- Improved – Backups: Clears an update only when the backup actually covers what is about to change
- Improved – Email log: Moves the log out of the options table
- Improved – Update machinery: Stops loading on every front-end page view
- Improved – Backups: Opens the file tree one folder at a time instead of the whole backup at once
- Improved – Backups: Moves backup history into the activity log
- Fixed – Restore: Keeps the workspace token, which a restore used to wipe and leave the site unreachable
- Fixed – Plugin update: Deactivates a plugin whose update failed instead of deleting it
- Fixed – Restore: Cancels a restore without a fatal error
- Fixed – Safe mode: Repairs every safe mode entry point, all of which were dead
- Fixed – Backups: Stops recording a busy worker as a failed backup or restore
- Fixed – Restore: Completes across foreign keys and removes its temporary tables
- Fixed – Restore: Runs on hosts without the zip extension
- Fixed – Backups: Stops reporting an incomplete backup as complete
- Fixed – Translations: Loads the translations, which were never loaded
- Fixed – Email log: Stops autoloading the log on every request, front end included
- Fixed – Email log: Caps a stored message body at 256 KB
- Fixed – Deactivation: Removes the seven scheduled tasks that were left behind
- Fixed – Retention: Ages records out against the correct clock
- Fixed – Assets: Restores cache busting, which the version stripper disabled
- Security – Plugin API: Closes an endpoint that accepted a self-chosen token without authentication
- Security – File handling: Closes an unauthenticated entry point that could write a file anywhere on the site
- Security – Email log: Requires a login to read the log
- Security – Backups: Requires authorisation to download a backup
- Security – Authentication: Compares tokens once, in constant time, instead of four times side by side
- Security – Validation: Rejects a trailing newline that could carry past an identifier check
- Security – Settings: Filters a client-supplied value before displaying it
- Security – Codebase: Removes eval() and a page that loaded code from a CDN
- Removed – Authentication: Removes the Octo-Token header and the octo-token query parameter
- Removed – Configuration: Removes the per-site token in config.php, which every update deleted
- Removed – Codebase: Removes ConfigService, TokenService and the API client that fetched the token
- Removed – Codebase: Removes tempauthfix5.json, which handed the site token to anyone who asked