* New: Browse and inspect the contents of any backup — view included files, folders, and database tables. In Pro, extract specific items from a backup to another folder without restoring the entire website. #2523
* New: Add support for sites protected with HTTP Basic Authentication. Scheduled backups and external crons now work on password-protected sites. Remote Sync can also connect to remote sites with HTTP auth protection. (Pro) #4884
* New: Automatically create missing directories on the remote server during SFTP/FTP backup uploads. Previously, the destination path had to exist on the server beforehand. (Pro) #4654
* Enh: Add Test Connection button for HTTP Basic Auth settings to verify credentials before saving. #4939
* Enh: Add option to change the database table prefix when extracting a backup with the WP Staging Restore Tool, allowing SQL imports into any database. (Pro) #4677
* Enh: Move CLI banner outside AJAX container on backup page. #4819
* Enh: Replace alarming WordPress version warning banner with a calm, neutral compatibility status notice inside the plugin UI. #4917
* Enh: Show CLI integration banner in free version as upsell for Docker environments feature. #4910
* Enh: Simplify Pro activation banner with one-click AJAX activation and standardize border-radius across all notices and banners. #4949
* Enh: Add validation to prevent staging prefix conflicts. Blocks using wpstg_ as a staging-site table prefix. Prefixes like wpstg0_, wpstg1_, etc. are still allowed. (Pro) #4799
* Fix: Allow deletion of orphaned staging sites that no longer exist in the file system but are still listed in the WP STAGING interface. #4610
* Fix: Drop-in files like object-cache.php and advanced-cache.php are now properly removed during push when “uninstall plugins and themes” is selected. Previously, an incorrect file path could leave these files behind, potentially causing fatal errors. (Pro) #4799
* Fix: WP STAGING options no longer get corrupted during Push. A prefix-replacement bug could accidentally rewrite wpstg_* option names to wp_*, breaking configuration and stored staging data. (Pro) #4799
* Fix: During full network restore, subsites’ URLs are not replaced in the options table. #4752
* Fix: Ensure WP STAGING admin notices display correctly in dark mode on WordPress 7.0. #4929
* Fix: Fixed an error that could cause the Backup page to crash. #4906
* Fix: Fixed an error that could prevent the Backup page from loading. #4901
* Fix: Prefix not replaced inside serialized option and meta values during database normalization. (Pro) #4676
* Fix: Prevent WP STAGING admin notices from appearing on third-party plugin pages with similar slug prefixes. #4823
* Fix: Prevent backup modal from jumping when expanding collapsible sections beyond viewport height. #4787
* Fix: Creating a temporary login link no longer invalidates the creator’s own user session. (Pro) #4806
* Fix: Remote Sync pull gets stuck at “Initializing” when the SSE connection is not established due to a race condition in job detection. (Pro) #4895
* Fix: Resolve false-positive backup validation error caused by skipped files not being counted in the total. #4933
* Fix: Restore the General Settings UI by removing duplicate CSS that overrode page styling. #4926
* Fix: Show detailed log entries when filtering logs by “all” or “info” during backup and staging operations. #4876
* UX: Add Close button on success modal of remote storage backup delete option. #4772
* UX: Improve sticky sidebar position on System Info page to stay at the top while scrolling. #4903
* Dev: Add support for skip-tests label in CI workflows to skip test execution. #4900
* Dev: Fix playwright tests failing for thirdparty site structure. #4890
* Dev: Integrate SolidJS in our dev environment to build reactive components. #4798
* Dev: Optimize make dev_dist build time and skip unit tests on macOS. #4879
* New: Introduce Remote Sync to pull data from a remote site. (Pro) #4596
* New: Compatible up to WordPress 6.9.1
* New: Allow staging site creation in wp-content/wp-staging-sites when root folder is not writable. #4785
* New: Add UI component system for more consistent and polished styling. #4837
* New: Add confetti celebration when creating a staging site or backup for the first time. #4803
* New: Add smooth shrink-to-dock animation when dismissing the CLI banner. #4840
* New: Redesign the license page with a modern look and updated feature descriptions. #4774
* Enh: Improve backup file validation performance by processing smaller files in memory. #4695
* Enh: Remove the "Check Directory Size" setting to simplify the settings page. #4715
* Enh: Simplify CLI integration Step 3 to use a single restore command with the --from flag. #4829
* Fix: Allow saving cloud storage settings even when the connection has not been tested yet, with a clear warning. (Pro) #4575
* Fix: Resolve CI cache conflict between Pro and Basic builds. #4868
* Fix: Resolve backup restore failure caused by empty chunk size. #4672
* Fix: License text in CLI banner was unreadable in dark mode due to incorrect text color. #4791
* Fix: Fully remove cloud storage settings on logout/revoke and clearly inform users before deletion. (Pro) #4758
* Fix: Preserve plugin settings during staging site updates, creation, and reset. #4744
* Fix: Sort backups by creation date in CLI integration Step 3. #4859
* Fix: Clean up stale CSS files during asset build process. #4853
* Fix: Correct broken footer layout on the FAQ card. #4831
* UX: Fix typo in the staging site update warning dialog. #4792
* UX: Improve backup page loading speed with parallel requests and better error handling. #4817
* UX: Improve loading states with skeleton placeholders, less blank space on the backup page, and shorter loading bar timeout. #4815
* UX: Redesign the System Info page with a cleaner layout and improved usability. #4746
* Dev: Add PHPCS rule to detect accidental double dollar signs ($$) as potential typos. #4645
* Dev: Add critical warning in CLAUDE.md to never push directly to master. #4857
* Dev: Add Tailwind CSS to streamline UI development. #4775
* Dev: Auto-copy built CSS/JS assets to dist folders after running make assets. #4847
* Dev: Consolidate duplicate license-checking logic in CLI integration notice. #4844
* Dev: Fix Playwright UI command (make e2e_playwright_ui) not working on macOS. #4760
* Dev: Fix Playwright UI command (make e2e_playwright_ui) not working on macOS. #4765
* Dev: Fix incremental asset builds skipping rebuild after a failed build. #4851
* Dev: Fix missing sanitizeArrayString call and resolve "Staging page container not found" error on non-staging pages. #4809
* Dev: Improve sanitizeArrayString to handle multidimensional arrays recursively. #4802
* Dev: Fix missing semicolons in nginx Docker config files. #4757
* Dev: Prepare PUSH for refactoring. #4701
* Dev: Remove flaky email notification test in backup Playwright suite. #4750
* Dev: Update cloud backup Dropbox Refresh Token. #4793
* Dev: Update ESLint configuration to automatically fix linting issues. #4731
* Dev: Update ESLint config for improved JavaScript formatting. #4708
* Dev: Improve code readability by using positive variable names. #3675
* New: Create local containerized and docker compatible development environments with wp staging cli. (Requires Pro Developer or Agency Plan) #4759
* New: Beautify changelog section to make it more appealing. #4724
* Enh: Add a preview of the selected options when the menus are collapsed. #4419
* Enh: Add ability to select a specific day of the week when creating a weekly scheduled backup. (Pro) #4670
* Enh: Improved email notification options for better user alerts. #4154
* Fix: Avoid OPcache "restrict_api" warnings in staging by properly handling restricted OPcache API paths. #4678
* Fix: Avoid fatal type errors when filtering the active plugins list during database restore and database pull for multisite if the active plugins options become corrupted. #4666
* Fix: Clean up plugins data on uninstall. #4583
* Fix: Clean up temporary validation directory before starting the backup process. #4625
* Fix: Corrected display issues in some admin messages to ensure text appears properly. #4716
* Fix: Dynamically fetch AWS S3 regions from AWS API with fallback to static list. (Pro) #4684
* Fix: Fail to create staging site after making a push. Get file permission error. (Pro) #4748
* Fix: Improve CLI modal reliability and backup UI, including a new sidebar and step navigation, custom header, visual feedback animation, copy button fix, and clearer date column styling. #4759
* Fix: Inconsistent font size in modal popups. #4721
* Fix: Logs are displayed even when their corresponding log type checkbox is not checked #4656
* Fix: Unable to create multisite backup when current network id not 1. #4697
* Fix: Valid permissions could be incorrectly rejected by isValidPermission(). #4749
* UX: Fix broken CSS and improve remote backup download modal with file size display and download button text improved. #4730
* Dev: Fix slowness in `make reset` dev command. #4742
* Dev: Improve macOS compatibility for development environment setup and build processes. #4567
* Dev: Increased time tolerance for scheduled backups to allow execution at any time of day. #4737
* Dev: Migrate wpstg-restorer codeception tests to Playwright for improved test reliability. #4071
* Dev: Move all staging(tests/e2e/Staging) e2e codeception tests to playwright. #4561
* Dev: Refactor and prepare code base for newer staging site update and reset logic using backuper pattern. #4537
* Dev: Skip unrequired and slow unit tests for Windows OS to speed it up. #4735
* Dev: Use constant for non-test filters in whole code base. #4236
* Dev: Fix mailhog email tests failing on macOS by making the API URL configurable via environment variable. #4769
* New: Compatible up to WordPress 6.9
* New: Tested up to PHP 8.5 RC5.
* New: Create local containerized and docker compatible development environments with wp staging cli. (Requires Pro Developer Plan or higher) #4688
* New: Add support for uploading backup files to shared Google Drive folders. (Pro) #3993
* New: Add autoscroll toggle to log modals. Hovering or scrolling inside the log window pauses automatic scrolling, allowing users to review previous log entries while new ones arrive. Hovering outside re-enables autoscroll. A small "Autoscroll: on/off" indicator appears in the bottom-right corner. Increases performance by reducing unnecessary scroll events when users are interacting with the log content and caching DOM elements. #4614
* New: Redesign the settings page with a cleaner layout and better visual hierarchy. #4595
* Enh: Make pro features dynamically accessible based on license types. (Pro) #4558
* Enh: Show backup storage connection test results in modal instead of toast when there is an error or warning. (Pro) #4463
* Fix: Ensure the initial login session on new staging sites follows the default WordPress session expiration. (Pro) #4646
* Fix: Fixes very rare file index issues on misconfigured and buggy server by implementing the filter `wpstg.job.performance_mode` (when set to `safe`). #4628
* Fix: Show clearer error messages when a directory is not writable due to permission issues or open_basedir restrictions. #4679
* Fix: Increase default ZIP file size limit from 10 MB to 50 MB during backup creation. #4674
* Fix: Simplify logout logic during database restore to avoid potential 503 error that disrupt the logout workflow. #4633
* Fix: Allow emails with subdomains when creating temporary login users. (Pro) #4621
* Fix: Show backup size in the UI for corrupted backups. #4637
* Fix: Prevent 'E_STRICT' deprecation notice on PHP 8.4+. #4544
* Fix: Don't copy background processor table wpstg_queue during cloning. #4636
* Fix: Several fixes and UX improvements to the cli modals #4707
* Fix: Allow 5-site Business license to have access to all Pro features (Pro) #4691
* Fix: Make buttons grey when license is not active #4682
* Fix: Exclude debug.log from backup creation by default #4693
* UX: Enhance the license activation error notice to display a clearer and more informative message when activation fails due to any error. (Pro) #4657
* Dev: Convert codeception remote storage tests to Playwright. #4551
* Dev: Fix flaky playwright tests. #4662
* Dev: Make code base pass with phpstan level 5. #4650
* Dev: Refactored `getLoaderAndSwal` to ensure single responsibility by separating loader initialization and display logic. #4640
* Dev: Make code base pass with phpstan level 4. #4648
* Dev: Use updated playwright docker image #4699
* New: Compatible up to WordPress 6.8.3.
* Enh: Present new automatic login to staging sites. #4585
* Fix: Resolved incorrect file path issue that was preventing old backup files from being deleted on FTP/SFTP servers. (Pro) #4582
* Fix: Resolved issue preventing data from being saved in the clone edit modal. (Pro) #4600
* Fix: Upload backup using the URL is not working, stuck at 0%. #4588
* Fix: Add additional JavaScript backup URL validation to ensure only valid .wpstg backup files are accepted. #4504
* Fix: Auto-login occasionally fails on older staging sites. (Pro) #4607
* Fix: False 'Insufficient Database Permissions' warning when database name contains escaped underscores. (Pro) #4590
* Fix: Backup upload failure for wasabi s3 due to timeout on fast server. (Pro) #4616
* Fix: Database prefixes were not replaced for subsites when restoring multisite backups. #4578
* Fix: Case-Insensitive file conflict in same directory. #4612
* Dev: Move `renderAlertMessage` into the correct UI namespace for cleaner architecture. #4573
* Dev: Improve phpcs rules to catch and fix file formatting (space left over or wrong indentation). #4250
* Dev: Add analytics for remote sync feature. Change authentication workflow for remote sync. Add truly background support for one way remote sync. #4515
* Dev: Implement site-specific reset command functionality. #2877
* Dev: Add phpcs new rules. #4602
* Dev: Update login form snapshots. #4592
* Dev: Wrong string formatting and phpcs issues. #4598
* Enh: Add filter `wpstg.backup.restore.exclude.tables` to support excluding of specific tables during the backup restore process. #4430
* Enh: Add custom region field for Wasabi S3 backup storage settings to support additional regions not listed in predefined options. (Pro) #4470
* Enh: Improve upgrade notification. #4529
* Enh: Add cancel option for refactored staging site creation. Make UI options work in the refactored staging site logic. #4464
* Fix: Misleading warning message displayed when symlinking files on staging site. #4555
* Fix: Optimize and improve loading placeholder performance and smoothness to eliminate UI flakiness. #4526
* Fix: Magic login links to staging site not always work. Refactor auto-login code for re-usability and ensure auto login metadata is cleared after authentication. (Pro) #4424
* Fix: Resolved false positive database permission warnings and empty table lists when deleting staging sites with external databases and custom table prefixes. (Pro) #4576
* Fix: Fatal error for `invalid job type` when uploading local backup to cloud. (Pro) #4518
* Fix: Memory exhaust error on backup restore when using the restore tool. Fix class not found in the restore tool and remove unused constants. (Pro) #4552
* Fix: Temporarily disable the modal "Nothing to worry but there is a glitch…". #4516
* Dev: Improve speed of playwright background test and add AI agent documentation #4565
* Dev: Exclude CLAUDE.md from dist packages. #4534
* Dev: Bring back `WP Staging Restorer` build script. #4570
* Dev: Extend the remote backup downloader so it can be used for remote sync feature. Also use only login related cookies when running background queue jobs. #4393
* Dev: Remove php cli github action workflow. #4536
* Dev: Move backup storage providers one folder up and remove folder storages. #4484
* Dev: Optimize github actions by removing PHP CLI setup action and using Docker containers for all PHP commands, saving ~32 seconds per workflow run #4532
* New: Compatible up to WordPress 6.8.2.
* Enh: Reduce the disk space requirement for backups during creation and improve the speed of backup creation when compression is enabled. #4342
* Enh: Show Bytes in more human friendly megabytes format in Log Window. #4385
* Enh: Improve update message text for staged rollouts. #4394
* Enh: Disable click option of Add Exclusion checkbox in Create Backup modal for free version. #4396
* Enh: Use constant for non-test action hooks in whole code base. #4354
* Fix: Misleading menu name for copying backup URL. #4397
* Fix: Incorrect HTML encoding in log output. #4388
* Fix: UX, missing margin in free version for pro feature demonstration text. #4389
* Fix: Improve log wording of backup processing. Wrong usage of plural and singular. #4373
* Fix: Modal "Another backup is running" looks broken and has sprintf error. #4384
* Fix: Prevent possible rare race condition when purging the cache. #4392
* Fix: Keep Advanced Options collapsed on Create Backup popup. #4449
* Fix: Removing translations from brand names and general global known terms. #4395
* Fix: Avoid scanner issues in the backup restore standalone tool. #4361
* Fix: Prevent error in email masking for short usernames that have only two characters. #4382
* Fix: Opening Settings -> Temporary Logins is slow in free version and takes seconds to load. #4387
* UX: Add space character in Action menu items between menu text and (Unregistered) #4441
* UX: Margin right issue on main html container on mobile devices. #4426
* Dev: Move Remote Sync feature towards final steps. #4318
* Dev: Prepare file copying logic to use backup logic for staging site feature refactor. #4224
* Dev: Prepare data login to use backup logic for staging site feature refactor. #4239
* Dev: Fix e2e tests failing because of outdated db version in database snapshot used for resetting database between tests. #4427
* New: Tested Backup and Staging for up to WordPress v. 6.8.1.
* New: Add multisite support in WP Staging Backup Restore Tool. (Pro) #4171
* New: Add an option to cancel background job using UI. #4295
* New: Add option to view logs for running background jobs (i.e. backup creation) through the UI. #4275
* Enh: Calculate and display the estimated size of backup component before creating a backup. #3145
* Enh: Implement icon-based dropdown action menu with improved styling for a more polished and user-friendly interface. #4257
* Fix: Avoid fatal error after activation of free and pro version together by checking if file exist before to require it. #4219
* Fix: Partial table cleanup on the backup restore tool. (Pro) #4279
* Fix: Safely clean 'wpstg_version_latest' option key from codebase #4139
* Fix: Multiple header issue when inside database content when including large database to the backup. #4150
* Fix: Remove trailingslash from backup file path in logs. #4232
* Fix: Server get overloaded when uploading large backup to OneDrive. Disable QuickXorHash computing for OneDrive (Pro) #4112
* Fix: FTP connection failure due to inconsistent array key casing during backup file retrieval. (Pro) #4211
* Fix: Endless loop when Google Drive account has no free disk space and backup uploading to it. (Pro) #4157
* Fix: Validate total files count and recount them during backup creation. #3982
* Fix: Adding dedicated ID attribute to input forms and making sure ID's are W3C conform in the HTML DOM following a strict standard. #4116
* Fix: Misleading errors in backup S3 Storage Provider. Show clear error messages. #4188
* Fix: Add margins to the swal popup modal titles for better spacing and appearance. #4287
* Fix: AWS s3 error "Content-MD5 OR x-amz-checksum- HTTP header is required for Put Object requests with Object Lock parameters" when object lock is enabled. (Pro) #3811
* Fix: Set all WP Staging admin page titles more consistent. #4290
* Fix: Incorrect uploads['baseurl'] if the upload_path is outside of absolute path. #4226
* Fix: Normalize wp-config content and replaces linefeed with new line while creating staging site. #4265
* Fix: Console error on staging site when site is not cloneable and closing the clone delete modal. #4276
* Fix: Only WP Staging's plugin is active after backup restore due to object-cache (SpinupWP). #4283
* UX: Show log entries without needing to click show logs again when displaying logs for backup background jobs. #4294
* Dev: Prepare codebase and implement a very basic sync feature. (Pro) #2755
* Dev: Refactor toggle directory test to playwright. #4302
- New Tested for up to WordPress v. 6.8.
- 🛡️ Sec Prevent authorized users from deleting admin user on the live and staging sites. (Pro) #4247
- 🚀 Perf Disable autoload option for wpstg_staging_sites field. #4098
- ⚡️ Enh Remove the notice header from general backup notice. #4237
- ⚡️ Enh Simplify the restore tool login process. (Pro) #4117
- ⚡️ Enh Remove google libraries and create a new library for uploading backup to google drive remote storage. (Pro) #3729
- ⚡️ Enh Release the restore tool as a non-PHP file to prevent false malware detection. (Pro) #4183
- ⚡️ Enh If no primary key exists in a table, flag log entry as warning and not info. #4194
- ⚡️ Enh Improve error message for backup upload preparation failure. #4045
- 🐛 Fix Some buttons were not translated. #4180
- 🐛 Fix We’ve improved how WP Staging handles large files during backups. If a backup step takes too long, WP Staging will automatically allow extra time for it to finish. If it still can’t complete successfully, the backup will safely stop instead of running forever. #4193
- 🐛 Fix If a database collation is missing during table restore, use the `general` variant for that table restore. Also add a filter `wpstg.database.importer.replace_collation` to restore with a specific variant if the collation is missing during restore. #4199
- 🐛 Fix No directories listed during staging process if wp-content folder is symlinked on Flywheel hosting. Enhanced symbolic link handling. #4173
- 🐛 Fix Prevent unauthorized access to REST APIs on the staging site to avoid potential exploits during plugin updates. (Pro) #4256
- 🐛 Fix Incorrect backup download URL when downloading backups on WP.com and Flywheel hosted sites. #4161
- 🐛 Fix Automatically disable DEBUG constants on staging sites to prevent unwanted debug warnings. #4175
- 🐛 Fix Add an alternative way to copy files during cloning and push when php native `copy` method fails on some system. #4144
- 🐛 Fix Some older compressed backups couldn’t be restored due to a file header error. This update fixes the issue so those backups can now be restored properly. #4241
- 🐛 Fix Backup older than version Pro 5.0.4 or Free 3.0.4 is considered v2 backup, thus can not be restored. #4243
- 🐛 Fix Enhance error handling and response messaging for failed license activation attempts. #3954
- UX: Fix the dark mode issue on the `Restore Tool` page. #4215
- UX: Visual improvement of the restore script download page. #4218
- 🛠️ Dev Increase github actions ‘timeout-minutes’ for playwright tests. #4222
- 🛠️ Dev Skip staging site tests on playwright for WordPress.com like environment. Also skip email related tests on Windows as email catcher is not yet implemented on Windows. #4220
- 🛠️ Dev Improve v2 backup specification docs. #4245
- 🛠️ Dev Playwright pro test are failing because of MS oneDrive. (Pro) #4163
* New: Compatible to WordPress 6.7.2.
* New: Introducing our new Auto Update Plugins optional feature in Advanced Settings! Now, whenever you set up a staging site, outdated plugins can be automatically refreshed in the background, ensuring you can immediately preview and test your updated website with ease. Enjoy a smoother, more efficient update process and a hassle free testing experience. (Pro) #3719
* Enh: Add preview setting for "backup compression" in free version. #4102
* Enh: Write site URL into header of wp-config.php for new staging sites. #2320
* Enh: Link each pro feature in the FAQ footer to the docs. #3579
* Enh: Clarify what is backed up with "Backup Other Files In WP Root" option. (Pro) #4050
* Enh: Refactor backup background processor to be DRY and less complex. #4034
* Fix: Automatically activate free version after its installation when pro version is already active. (Pro) #3971
* Fix: Better handling the backup process elapsed time when the browser tab is inactive in background. #4064
* Fix: Update backups retention number after deleting remote backup. (Pro) #4083
* Fix: Backup file can't be downloaded in WordPress Playground. #4082
* Fix: Remove warnings in backup debug logs. #4086
* Fix: Display the ongoing progress percentage while downloading the backup from remote storage. (Pro) #4110
* Fix: Properly handle HTML entities and preserve line breaks while sending backup email notifications. #3431
* Fix: Show accurate tables count during staging site creation. #4113
* Fix: Missing initial backup index to restore database with the WP Staging Restore tool. #4120
* Fix: PHP "Uncaught TypeError" and remove useless logs for backup to Microsoft OneDrive. (Pro) #4104
* Fix: Undefined property: stdClass::$error - File: wp-staging-pro/Pro/License/Licensing.php Line: 193. (Pro) #4135
* Fix: Prevent duplicate file headers for database when including large database in multiple requests in the backup. #4150
* Fix: Remove wpstg-restore.php from free version.
* UX: Enhance the appearance of the basic installation notice and ensure the user is redirected to the install page if the basic version is not installed or is incompatible. (Pro) #4101
* Fix: Improve design of some modal. #4029
* Dev: Prepare pre-staging `Setup` ajax request as a first step to refactor the cloning feature to be more robust. #4033
* Dev: Move db backup related logic from playwright test to roadrunner. #4043