== Changelog ==

= 1.4.0 =
* Added brute-force login lockout: configurable max attempts, sliding attempt window, and lockout duration, with an optional per-username scope.
* Added a new Firewall admin page (hero, KPI summary, active lockouts panel, and Block/Allow list management) styled to match the existing dashboard design system.
* Allow-listed IPs now bypass both the login block list and brute-force lockout checks.
* Fixed the Cron Events "Run Now" action to only execute hooks that are actually scheduled, using their real recorded arguments, instead of trusting request-supplied hook names and arguments.
* Fixed a UTC/local timezone mismatch in the "Export Today" log export.
* Fixed LIKE-wildcard characters in log search being treated literally instead of escaped.
* Added an explicit capability check to the log viewer's bulk-delete action (defense in depth).
* Added a composite database index for common log-filtering queries, applied automatically via a version-gated schema upgrade.

= 1.3.3 =
* Fixed text domain loading to use the `init` hook, resolving a deprecation notice introduced in WordPress 6.7.
* Replaced `_get_cron_array()` (private WP function) with `get_option('cron')` in the Cron Events page for forward compatibility.
* Replaced `current_time('mysql')` with `gmdate('Y-m-d H:i:s')` for log insertion to ensure consistent UTC storage.
* Replaced `current_time('mysql', 1)` with `gmdate('Y-m-d H:i:s')` across all dashboard date-threshold queries.
* Replaced deprecated `current_time('timestamp')` with `time()` in the admin export handler.
* Replaced direct `_column_headers` assignment with `set_column_headers()` in the log table for forward compatibility.
* Replaced `jQuery(document).ready()` inline script with an IIFE pattern for compatibility with the WP 7.0 React-based admin.
* Removed unused `EMWMAL_Logger` instantiation from the loader init method.
* Updated plugin headers: `Requires at least` set to 6.7, added `Tested up to: 7.0`.
* Applied WordPress and PHP coding standards (WPCS/PHPCS) fixes across all plugin files.

= 1.3.2 =
* Added date range, username/email, and user role filters in Log Viewer.
* Added custom date-range CSV export for activity logs.
* Added a system status summary for logging, retention, notification email health, and next digest run.
* Added an admin warning when digest notifications are enabled without a valid email recipient.

= 1.3.1 =
* Updated the admin "What changed" notice to read release details from the changelog, including missed versions after upgrade.
* Fixed log level filtering/export compatibility by normalizing stored and queried level values.
* Aligned release metadata with the current codebase and documented the PHP 8.0 minimum requirement.

= 1.3.0 =
* Added export presets in Log Viewer (Security Audit, Login Failures, Compliance Report).
* Added KPI count-up animation, row highlight for newly seen events, and smoother UI state transitions.
* Improved admin notice UX and notice dismiss button alignment.
* Continued improvements to Cron Events and dashboard usability.

= 1.2.0 =
* Added admin IP whitelist restriction and enforcement for wp-admin access.
* Improved dashboard UI/UX and Available Addon Plugins card/slider experience.
* Updated addon slider responsive behavior (3 columns desktop, 2 tablet, 1 mobile).

= 1.1.0 =
* Added tabbed monitor settings (General and Advanced).
* Added advanced logging controls and runtime filtering rules.
* Improved dashboard UI/UX with KPIs, refreshed health overview interactions, and enhanced addon cards.
* Updated admin asset behavior for dashboard page consistency.

= 1.0.0 =
* Initial plugin release.
