Split codebase into includes/ for maintainability; forbidden HTML lives in templates/forbidden.php.
Public forbidden screen at /voho-bot-forbidden/ (flush permalinks after update) with plain-URL fallback.
Front-end script assets/js/bot-check.js detects common automation signals in the browser and redirects to the forbidden screen (logged when voho_js=1).
1.0.5
Themed HTTP 403 page: loads the active (and parent, if child) theme stylesheet, uses block-theme CSS variables when present, and returns JSON errors for REST/JSON requests.
1.0.4
Harden input handling (wp_unslash, sanitization), use wpdb::prepare() identifier placeholders for custom table queries, and document direct DB usage for Plugin Check.
1.0.3
Show log timestamps in the site timezone with an explanatory note.
1.0.2
Top-level admin menu and View log plugin action link.
1.0.1
Admin log viewer with pagination.
1.0.0
Initial release: AI crawler mitigation, HTTP 403 enforcement, database log on activation.