# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [2.0.0] — 2026-05-29 ### Added - **5 new built-in bots** aligned with the `angeo/module-aeo-audit` v3 catalogue: `Claude-User`, `Applebot`, `cohere-ai`, `Amazonbot`, `Meta-ExternalAgent`. Out-of-the-box, an install now produces a robots.txt that passes the audit module's `robots_txt` check. - **`Angeo\RobotsTxtAeo\Api\RobotsStatusInterface`** — public read-only API exposing the effective robots.txt, enabled bot UAs, sitemaps, and mode. Cross-module integration with `angeo/module-aeo-audit` (and any third-party consumer) is now zero-overhead — no HTTP round-trip required. - **Dedicated cache type** `angeo_robots_txt_aeo` — surfaces in System → Cache Management and can be flushed in isolation. - **Backend models for config validation** — `PathList` and `CrawlDelay` normalise input on save (admin form, `config:set`, direct DB writes). - **i18n/en_US.csv** — admin labels are now translatable. - **`criticalForAudit` metadata** on `BotDefinition` — flags bots whose blocking causes the AEO Audit to FAIL (currently OAI-SearchBot, GPTBot, Google-Extended). ### Changed - **Audit-clean output sanitisation** — emitted robots.txt no longer triggers syntax warnings from the AEO Audit: - `Crawl-delay` directives are suppressed on bots that documentedly ignore them (GPTBot, ClaudeBot, Google-Extended). - When a bot has `Disallow: /`, the implicit `Allow: /` fallback is dropped so we never emit both directives on the same agent. - User-agent strings are sanitised at the `BotDefinition` layer — any `/version` suffix is stripped (e.g. `GPTBot/1.0` → `GPTBot`). - Sitemap URLs are upgraded to `https://` when the store base URL is HTTPS. - **`RobotsInjector::stripStandaloneBotEntries`** rewritten to use `RobotsTxtParser` instead of a hand-rolled regex state machine. Cleaner, ~50 lines smaller, and correct for previously edge-case input. - **`Plugin\RobotsModelPlugin`** — short-circuits before building the injector graph when the module is disabled for the current store. - **`composer.json`** — PHP requirement loosened to `~8.1.0||~8.2.0||~8.3.0||~8.4.0`, added hard dependency on `magento/module-robots`, pinned `magento/framework` to `^103.0`. - Admin Preview block and Dashboard template are now CSP-friendly — all inline `