Changed: Pro upsell notice appears only on the Plugins screen and Atlas for WP settings (above tabs), not site-wide. Dismiss still hides it on both screens.
1.0.47
Fixed: Relative links in generated Markdown (per-page .md and llms.md) are converted to absolute URLs. Clear cache on the Your site tab if you still see old output.
1.0.46
Changed: llms.txt attribution line now reads Generated by Atlas for WP (was WordHerd AI Atlas). Clear cache on the Your site tab if the old line still appears.
1.0.45
Added: Exclude from llms.txt and llms.md checkbox in Quick Edit on supported content list screens (pages in free; extra types with Pro).
1.0.44
Changed: Post editor meta box title and remaining admin UI labels use Atlas for WP and Atlas for WP Pro (was WordHerd AI Atlas / WH AI Atlas).
1.0.43
Changed: Tested up to WordPress 7.0.
1.0.42
Changed: Plugin name to Atlas for WP (was AI Atlas).
Fixed: Your site tab keeps Pro settings inside the save form and places Save changes after Pro fields (requires Atlas for WP Pro update).
1.0.41
Changed: Plugin name to AI Atlas (was WordHerd AI Atlas).
Changed: Pro upsell notice Dismiss button padding; core X dismiss persists per user (same as Dismiss link).
1.0.40
Fixed: /index.md no longer returns 404 when the homepage shows latest blog posts; serves a site summary with recent post links and a link to /llms.txt.
Changed: Overview tab explains what Home page (markdown) shows for blog vs static front page.
1.0.39
Changed: wp-admin sidebar menu icon updated to the trademark compass mark.
1.0.38
Changed: post editor meta box title is WordHerd AI Atlas (was WH AI Atlas).
1.0.37
Fixed: per-page .md blockquote summaries no longer include CSS from <style> blocks (for example Advanced Gutenberg); style/script/noscript markup is stripped before plain-text extraction.
1.0.36
Fixed: Overview tab Plan badge shows Pro only when the license is live-activated on the License tab, not when a stale Pro cache flag remains after deactivation.
1.0.35
Fixed: false llms.txt conflict notice on new installs — re-checks live /llms.txt before showing the warning, defers the activation probe to the first admin request, and ignores HTML loopback responses that are not a real llms.txt file.
1.0.34
Added: custom compass SVG admin menu icon (matches wp-admin menu icon gray).
Changed: admin page heading shows WordHerd AI Atlas (sidebar label remains WH AI Atlas).
1.0.33
Fixed: llms.txt conflict notice no longer appears when WordHerd AI Atlas is serving the file (recognizes the current attribution line).
1.0.32
Changed: product display names use WordHerd AI Atlas / WordHerd AI Atlas Pro; admin menu label WH AI Atlas (below Settings); cross-references between free and Pro plugins updated.
1.0.31
Changed: taxonomy exclusions and Pro admin styles live in AI Atlas Pro only; free tier clamps cache and Pro options when unlicensed.
Changed: Pro upsell notice uses CSS classes; Dismiss button has an accessibility label.
1.0.30
Fixed: WordPress Plugin Check compliance (readme title matches plugin header; admin notice and router input sanitization; uninstall user-meta cleanup via core API; removed redundant load_plugin_textdomain call under WordPress 4.6+).
1.0.29
Fixed: llms.txt summaries from HTML content keep spaces between sections (card grids and headings no longer cram words together).
1.0.28
Fixed: llms.txt and Markdown titles/summaries show &, ellipses, and other characters instead of HTML entity codes (&, &, …, etc.).
1.0.27
Changed: Pro upsell Dismiss hides the notice on the current admin screen (AJAX) instead of redirecting to AI Atlas settings.
1.0.26
Changed: Yoast llms.txt conflict notice now says Yoast SEO is generating the /llms.txt file.
1.0.25
Added: detect when another plugin or static file serves /llms.txt (Yoast SEO and other sources); admin warning with steps to fix.
Changed: llms.txt attribution line identifies the file as a site index for AI assistants.
1.0.24
Performance: public AI URLs send Cache-Control headers aligned with the plugin cache TTL (browsers/CDNs may cache until that interval).
Security: template HTML fallback only fetches permalinks on the same host as the site; League Markdown fallback sanitizes link URLs; the_content runs with correct post context.
Accessibility: connection check shows OK/Failed labels, not color alone.
Pro: license summary cached for 60 seconds (refresh still updates on demand).
1.0.23
Security: admin form handlers require the AI Atlas settings screen; failed nonces return HTTP 403. Markdown links and images sanitize URLs (http, https, mailto).
Performance: admin classes load only in wp-admin; cache clears only for relevant post types; connection check runs only after you click Run check now.
Accessibility: settings tabs include ARIA wiring and keyboard focus between tabs; Pro picker rows support arrow-key reorder.
Privacy: export/erase hooks for per-user upsell dismiss meta; uninstall removes dismiss user meta.
Registered _wh_aiatlas_exclude post meta with auth callbacks.
1.0.22
Admin: removed Pro-only picker/sortable JavaScript from the free package (handled by AI Atlas Pro when licensed).
FAQ: clarified that excluding content from llms.txt / llms.md applies to pages in the free version only.
1.0.21
Breaking: Renamed all plugin identifiers to the wh_aiatlas prefix (functions, hooks, options, classes, admin slug wh_aiatlas, asset handles). Existing settings and post meta are not migrated; re-save settings after updating. Deactivate the legacy ai-atlas plugin if present to avoid PHP conflicts.
Text domain strings now use wordherd-ai-atlas; load_plugin_textdomain() added.
Added ABSPATH guards on generator and cache classes; meta save skips post revisions.
1.0.20
Freemium split: licensing and Pro features moved to the separate AI Atlas Pro add-on. Free plugin adds extension hooks and a dismissible Pro upsell notice; core llms.txt, llms.md, and Markdown URLs remain fully available without Pro.
1.0.19
Renamed plugin to include WordHerd brand name.
1.0.18
Admin: other plugins’ global admin notices now appear below the AI Atlas page title instead of inside the Your site tab above “Clear cached responses”.
1.0.17
Plugins screen: Settings link on the AI Atlas row (next to Deactivate), opening the plugin admin page.
1.0.16
Admin (Advanced Settings): Exclude by category or tag is at the bottom of the tab inside a collapsible accordion (closed by default).
1.0.15
Licensing: when the site URL changes (clone, HTTPS switch, domain move), reset WC-AM instance ids and local “activated” state so the store can sync after Deactivate then Activate on the License tab. Successful activation saves {data_key}_instance_site_identity.
1.0.14
Licensing: before calling WooCommerce API Manager activate, reuse the instance ID from the default slug client option (wc_am_client_ai_atlas_instance) when it differs from the current product’s *_instance so status probes and activation share one site identity (helps the store record activations). Activation requests now always send explicit product_id and product_parent_id (when set). Filters: wh_aiatlas_license_sync_legacy_slug_instance, wh_aiatlas_license_legacy_instance_option_keys.
1.0.13
Admin (License tab): do not render the bordered error box in the summary when there is no error text (avoids an empty description block).
1.0.12
Admin (License tab): under Status, show the API summary message (for example “License is active.”). Plan row now appears for every active or activation-limited state, with Pro vs Free labels instead of a raw slug.
1.0.11
Admin (Overview): removed the License row and Activate shortcut; use the License tab to manage activation.
1.0.10
Licensing: activation summary uses purchased minus remaining first (avoids sticking on 0 used when total_activations is still 0); for active keys that still look “fully unused,” assume one seat in use and align remaining with the limit. My Account still reflects the store API—fix inconsistent counts there on the server if needed.
1.0.9
Licensing: after product ID auto-detect, carry the existing WC-AM *_instance ID to the new data_key (same pattern as WordWall when the dynamic key changes) so status probes and activate() use one site identity and the store records the activation.
Licensing: deactivation sends explicit product_id / product_parent_id with the API key; activation success treats boolean-like activated/success values from JSON like WordWall.
1.0.8
Licensing: activation count in the admin summary uses purchased minus remaining (matches WooCommerce API Manager semantics) when both values exist.
Admin (License): when a license is active or activation limit is reached, the key field is read-only, disabled, and shown as a bullet mask; Activate is disabled.
1.0.7
Licensing: treat Pro and “Active” only when a license key is stored and the live API reports activation; avoid stale local flags. License tab no longer shows “Pro on this site” / Yes–No. “Last status check” appears only after a successful check with an active or exhausted license; cron no longer records a check time when no key is saved.
1.0.6
Licensing: ship default AIA_LICENSE_PRODUCT_PARENT_ID (639) and AIA_LICENSE_PRODUCT_IDS variation list (2443, 2444, 2421, 2447, 2423, 2449) for activation auto-detect; override in wp-config.php if your catalog differs.
1.0.5
Licensing: default license API / storefront host is now https://atlasforai.com/ (wp-config and saved developer URL still override).
Licensing: optional multi–product ID list (wp-config AIA_LICENSE_PRODUCT_IDS or License tab “Product IDs”) triggers activation-time status probes so the correct variation is written to Product ID before activate (skipped when AIA_LICENSE_PRODUCT_ID is set in wp-config).
1.0.4
Licensing: integrate the official WooCommerce API Manager PHP client for activation/deactivation/status; remove the legacy custom API client and duplicate activation paths.
1.0.3
Per-page Markdown summaries: strip registered shortcodes before building the optional blockquote excerpt so leading shortcodes no longer appear as literal text in /{slug}.md.
1.0.2
Expanded readme.txt with installation steps, FAQ, privacy summary, and screenshot placeholders.
Added expanded Privacy section in this readme, uninstall.php, and directory index.php stubs for packaging hygiene.
Added translation loading (languages/; English strings unchanged).
1.0.1
Public endpoints for AI-friendly content: site index at /llms.txt, full export at /llms.md, and clean Markdown per post or page at /{slug}.md.
Admin settings organized into tabs (overview, your site, connection check, license, advanced) with clearer copy and short success notices after saving.
Connection check tab runs diagnostics when you need them.
Smarter Markdown generation when page body content is thin, including better handling of blocks and rendered page content.
Routing and caching improvements so generated files stay consistent and refresh when settings change.