v0.61.0
Highlights
File Manager (new)
Browse, edit, upload, download, and manage files on any connected WordPress site directly from the dashboard, under a new Files tab per site. Off by default per site, owner/admin gated, and fully audited.
- Read: browse folders, preview files, download (large files stream via presigned storage); sensitive files (wp-config.php, .env, keys) require owner confirmation.
- Write/upload: a separate per-site write toggle (off by default) enables editing, drag-and-drop upload, new folder, rename, delete (type-to-confirm), and chmod. Executable-write and PHP-content writes are blocked; core/wp-admin/wp-includes are protected; writes are atomic.
- Archive, search, versions: zip files or folders and download; extract a .zip back into the site (path-traversal and zip-bomb protected); search by name or content; per-file version history with encrypted prior versions you can restore.
- Operator audit: the Audit page is now a filterable timeline (by action and by site); every file read/write/delete/upload/extract/restore and every denial is recorded.
Fixes
- Backup schedule form accepts valid weekly/monthly/every-N-hours input again; the scheduler now logs a skipped due-schedule instead of failing silently (#96).
- Update runs list shows real task counts, a failed-task marker, and a site count; the run-detail progress bar fills on a finished run (#97).
- Bulk update modal honors the plugins/themes/core target, defaults to items with an available update, and separates plugins from themes (#98).
- Closing a dialog no longer leaves the page unclickable (#99).
- A failed admin bundle no longer takes down the Sites app for superadmins; superadmin can be revoked via
WPMGR_SUPERADMIN_REVOKE_EMAILS(#100). - Plugin changelog links use the plugin slug, not the file path (#101).
- The Sites overview Uptime column shows per-site uptime (#102).
- "Open in wp-admin" for many sites uses a persistent panel so all selected sites are reachable (#103).
- The backup "Past runs" panel shows existing completed and failed runs (#104).
- Advanced page-cache bypass and variant settings now reach the agent (#95).
- The media-encoder runs its background jobs in a dedicated schema in the bundled self-host profile, so it no longer blocks API uptime and cron scheduling (#93).
Upgrade (self-host)
- Pull
ghcr.io/mosamlife/wpmgr-{api,web,media-encoder}:v0.61.0. - Agent: grab the
wpmgr-agent.zipfrom this release, or let it self-update once your control plane is on 0.61.0.
Migrations apply automatically on boot.