You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+25Lines changed: 25 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,31 @@
2
2
3
3
## Unreleased
4
4
5
+
### Critical Bug Fixes
6
+
7
+
-**Scheduled Deletion Fix**: Fixed critical bug where automatic export file cleanup via WordPress cron was completely broken. The referer validation in `sse_validate_basic_export_file()` was blocking all cron-triggered deletions since scheduled tasks have no HTTP referer. Referer checks are now correctly applied only to user-facing download and deletion handlers.
8
+
-**Deletion Notice Fix**: Fixed bug where success/failure notices after manually deleting an export file were lost due to `add_action('admin_notices')` being registered before `wp_safe_redirect()` + `exit`. Notices are now passed via query parameter and displayed on the redirected page.
9
+
10
+
### Security & Escaping Fixes
11
+
12
+
-**Double Escaping Prevention**: Fixed 9 instances of double-escaped WP_Error messages where `esc_html__()` was used in error construction but messages were escaped again with `esc_html()` at output time. Changed to `__()` in WP_Error constructors since escaping belongs at the output boundary.
13
+
-**Admin Menu Escaping**: Removed redundant `esc_html__()` in `sse_admin_menu()` — WordPress core already escapes page and menu titles internally.
14
+
-**Submit Button Escaping**: Removed redundant `esc_html__()` in `submit_button()` call — the function internally applies `esc_attr()` to button text.
15
+
-**Database Export Error**: Removed pre-escaping of WP-CLI error output in `sse_export_database()` WP_Error to prevent double escaping when displayed via `sse_show_error_notice()`.
16
+
-**Symlink Compatibility**: Removed overly strict `realpath()` equality check in `sse_validate_download_file_access()` that could block valid downloads on servers with symlinked upload directories. Directory containment validation already provides equivalent security.
17
+
18
+
### Performance Improvements
19
+
20
+
-**File Size Filter Caching**: Cached the `sse_max_file_size_for_export` filter result using a static variable in `sse_should_exclude_file()` to avoid redundant `get_transient()`, `get_current_user_id()`, and `apply_filters()` calls for every file during export.
21
+
-**Error Log Autoload**: Added `false` autoload parameter to `update_option()` in `sse_store_log_in_database()` to prevent debug logs from being loaded into memory on every WordPress page request.
22
+
23
+
### Code Quality
24
+
25
+
-**Dead Code Removal**: Removed unused `sse_get_scheduled_deletions()` debugging function that was never called from any code path.
26
+
-**Shell Safety**: Added `function_exists('shell_exec')` check in `sse_get_safe_wp_cli_path()` before attempting PATH lookup, preventing PHP warnings when `shell_exec` is disabled.
27
+
-**POT File Cleanup**: Removed 6 stale translation entries referencing functions that no longer exist. Added missing translatable strings for file size options, error messages, and WP-CLI status messages.
28
+
-**GEMINI.md**: Updated version reference from 1.8.4 to 1.9.1.
Copy file name to clipboardExpand all lines: readme.txt
+10Lines changed: 10 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -90,6 +90,16 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
90
90
== Changelog ==
91
91
92
92
= Unreleased =
93
+
* **Critical Fix**: Fixed bug where automatic export file cleanup via WordPress cron was completely broken due to referer validation blocking cron-triggered deletions
94
+
* **Critical Fix**: Fixed deletion success/failure notices being lost after redirect
95
+
* **Security**: Fixed 9 instances of double-escaped WP_Error messages that could display garbled text to users
96
+
* **Security**: Removed redundant double escaping in admin menu titles and submit button
97
+
* **Security**: Removed overly strict realpath equality check that blocked downloads on servers with symlinked uploads
98
+
* **Performance**: Cached file size filter result to avoid redundant lookups per file during export
99
+
* **Performance**: Prevented debug error logs from autoloading on every WordPress page request
100
+
* **Code Quality**: Removed unused `sse_get_scheduled_deletions()` dead code
* **i18n**: Cleaned up stale .pot entries and added missing translatable strings
93
103
94
104
= 1.9.1 =
95
105
* **Scheduled Deletion System Enhancements**: Implemented comprehensive dual cleanup system with both individual file cleanup (5 minutes) and bulk directory cleanup (10 minutes) as safety net
0 commit comments