Security: Replaced permissive SVG filtering with a self-contained element and attribute allowlist, safe internal references, canonical SVG extension and MIME validation, and a hard payload ceiling before DOM parsing.
Security: Expanded the non-configurable dangerous-format denylist and hardened settings input, extension/MIME pairs, upload and sideload contexts, malformed request values, and General Settings authorization.
Correctness: Added one-pass WordPress filename normalization, locale-aware browser parity, bounded PHP/JavaScript-safe patterns, deterministic auto-sanitization limits, effective MIME correction, and final unique-name validation before storage.
Duplicate Guard: Added direct per-filename Media Library lookups, short-lived hashed upload locks, final-name rechecks, and fail-closed native, sideload, REST, and database-error handling without a filename index or custom table.
Upload experience: Coordinated asynchronous duplicate and image-dimension checks behind one uploader barrier with bounded batches, strict response validation, request timeouts, bounded dimension concurrency, and object URL cleanup.
Accessibility: Added labelled warning dialogs with keyboard and focus management, accessible rule controls, and predictable focus after adding or deleting a rule.
Performance: Scoped admin assets and upload filters to relevant contexts and removed document-wide file-input rescanning.
Maintenance: Split upload context, filename identity, direct duplicate lookup, temporary reservations, and upload orchestration into focused internal components, aligned native callback signatures, and removed unreachable branches without third-party libraries.
Defaults: Allowed ZIP globally so native WordPress plugin and theme package uploads are not restricted by the initial rules.
1.8.5
Maintenance: Synchronized the current plugin interface across English source strings and the bundled Ukrainian and German translation catalogs.
Maintenance: Updated WordPress compatibility metadata to 7.0.
1.8.4
Fix: Matched client-side filename normalization to the server so names containing spaces are reshaped consistently before validation.
Fix: Added a re-entrancy guard around the filename sanitization filter to prevent recursive processing during WordPress filename cleanup.