Aetos SEO Audit changelog

Earlier releases. The current release is described in readme.txt.

= 4.0.16 =
* Enforced same-site URL validation before HTTP collection, including uppercase schemes and protocol-relative URLs.
* Corrected terminal response status after failed redirects and stopped reporting unrequested redirect targets as fetched pages.
* Bounded fallback broken-link response downloads.
* Added scan coverage counts with separate retrieval, parsing, error and settings-limit outcomes for new audits.
* Improved Arabic settings, narrow-screen language selection and scan failure guidance.
* Preserved settings that are not exposed by the Lite settings form when saving visible controls.

= 4.0.15 =
* Moved third-party WordPress admin notices into a clearly labeled notices area on every Aetos screen.
* Included notices rendered beside the Aetos page wrapper, not only notices rendered inside it.
* Added browser regression coverage for notices inserted before and after the Aetos interface loads.

= 4.0.14 =
* Preserved backslashes in remediation code and regular-expression examples instead of rewriting them during privacy redaction.
* Kept known filesystem roots and sensitive query values redacted without altering unrelated report content.
* Added package-level regression coverage for code integrity across supported PHP versions.

= 4.0.13 =
* Isolated page-request failures so one malformed URL or third-party HTTP hook cannot leave the audit stuck on the same crawl batch.
* Added bounded redacted diagnostics for failed crawl URLs while allowing the remaining queue to continue.
* Corrected stalled-scan timing and crawl duration calculations across WordPress site timezones.
* Added regression coverage for poison-URL recovery and timezone-aware stale-run cleanup.

= 4.0.12 =
* Replaced emoji-based admin status markers with local WordPress Dashicons and CSS indicators, avoiding broken remote Twemoji images.
* Localized remaining retest guidance in Arabic JSON audit data and improved mixed-direction diagnostic copy.
* Refreshed the WordPress.org translation extraction catalog from the current Lite source.

= 4.0.11 =
* Localized diagnostic evidence and remediation guidance that could previously retain Arabic text in an English audit.
* Improved image-optimization and cache-conflict recommendations without changing audit scope or Lite result availability.
* Added a build gate that rejects future unlocalized Arabic output literals in Lite audit checks.

= 4.0.10 =
* Improved business-page and schema subtype classification to reduce editorial false positives on real service, store, medical, and local-business pages.
* Hardened crawl and rendered-page handling so failed fetch rows are not reported as empty parsed pages.
* Strengthened the Lite + Pro coexistence contract while keeping every Lite finding complete and available without a license.
* Added regression coverage for multilingual output, mobile admin behavior, and the separate Pro add-on integration path.

= 4.0.9 =
* Added a WordPress.org GlotPress extraction catalog so the bilingual Aetos admin strings are available to the official translation system.
* Regenerated the Arabic language source files from the current plugin strings.
* Numbered several placeholder strings to improve translator context and avoid extraction warnings.

= 4.0.8 =
* Isolated WordPress/admin notices into a dedicated Aetos notices zone so third-party plugin messages no longer appear inside Aetos cards.
* Unified Dashboard action and "View details" buttons for a cleaner, consistent admin experience.
* Reworked the Upgrade to Pro screen to explain the separate Pro add-on model while keeping the WordPress.org edition complete.
* Added Pro-ready styling hooks used by the separately installed Aetos SEO Pro add-on license screen.

= 4.0.7 =
* Converted remaining Settings, Findings, Dashboard, and scan-recovery admin strings to the explicit Aetos language switch instead of legacy gettext fallbacks.
* Added English-safe display fallbacks for older stored findings that were generated while the admin language was Arabic, so English admin screens and summary emails never show Arabic plugin copy for those legacy rows.
* Made audit summary emails language-aware, including `lang` / `dir`, category labels, severity labels, and the call-to-action.
* Removed Arabic fallback text from the admin JavaScript stats bar if localization data is unavailable.

= 4.0.6 =
* Updated Dashboard action labels and descriptions to recognize an active Aetos SEO Pro add-on while keeping the Lite-only wording unchanged for free installs.
* The audit behavior is unchanged; this is a copy/UX polish for licensed Pro sites.

= 4.0.5 =
* Added prefixed extension hooks so separately installed add-ons can register audit checks, score categories, and category labels without replacing or deactivating Aetos SEO Lite.
* Kept the complete Lite audit and all Lite results unchanged and available without a license.

= 4.0.4 =
* Made the per-finding "Copy AI prompt" output fully language-aware. English admin screens now copy an English prompt with English site-context labels and instructions; Arabic admin screens keep the Arabic prompt.
* Made the "copied" button feedback use the Aetos admin-language setting instead of the general WordPress page language.
* This closes the last visible mixed-language risk after the 4.0.3 bilingual admin pass.

= 4.0.3 =
* Completed the bilingual interface. Every audit finding (its title, the
  "why it matters" explanation, and the fix steps) is now fully translated, and
  all remaining Dashboard and Settings labels were moved onto the same
  language switch. English sites now show a 100% English admin, and Arabic / RTL
  sites a 100% Arabic admin, with no mixed-language screens.
* Simplified the displayed plugin author to "Aetos SEO".

= 4.0.2 =
* Addressed the WordPress.org "determine file and directory locations" review
  in full: removed manual wp-admin / core path composition and every fixed
  parent-directory walk across the plugin, not only the two reported lines.
* Plugin, asset, and upload locations now use the WordPress public path APIs
  (plugin_dir_path, plugin_dir_url, plugins_url, wp_upload_dir, plugin_basename).
* Expanded the "External services" disclosure: documented the client-side
  analytics API names the audit recognizes (gtag, fbq, _paq) and clarified that
  detecting active SEO/performance/security/builder plugins reads their settings
  only from the local database and never transmits them.
* Hardened the Lite build so any of those path patterns fail the build if reintroduced.

= 3.3.57 =
* WordPress.org review feedback round: reworded audit-result description
  strings so no raw tag-like text remains in code or comments (the plugin's
  own CSS / JS always loaded through wp_enqueue APIs).
* Path resolution now avoids fixed directory walks and uses WordPress path
  helpers for plugin-owned paths and uploads.
* Removed a read of another plugin's filter; plugin-conflict detection now
  uses an internal list. All hooks, options, transients, and AJAX actions
  the plugin creates use the aetos_seo_ prefix.
* Removed leftover dormant Pro-edition helper code and unused CSS from the
  free package; the free edition continues to show every finding in full.

= 3.3.52 =
* First public release on WordPress.org (free edition).
* Built on the mature Aetos SEO audit engine.
* Audit engine: technical SEO, crawl coverage, on-page, mobile, media,
  structured data, AI-readiness (AEO / GEO), performance basics, analytics
  detection, security basics.
* Bilingual admin interface (Arabic / English) with full RTL support.
* Self-contained WordPress.org release with no automatic third-party service calls.
