=== Odysseo Core ===
Contributors: cbsshekhawat18
Tags: seo, ai, schema, sitemap, custom post types, custom fields
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 2.21.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

AI-powered SEO on autopilot: titles, meta, schema, sitemaps, redirects — plus custom post types, custom fields and one-click website designs.

== Description ==

**Odysseo Core is a complete AI SEO plugin and website builder toolkit in one.** Activate it and every page on your site immediately gets a correct SEO title, meta description, canonical URL, schema markup and social preview — automatically, with nothing to configure. Then it keeps working for you: a dashboard that shows your real SEO health, one-click fixes for real problems, and an optional AI assistant that only ever fills in what is missing.

**One rule makes it different: it never shows you a number it did not actually measure.** No invented scores, no scare tactics — just your site, as it really is.

= Automatic SEO for every page =

* **SEO titles and meta descriptions** — generated from smart templates for every post, page, product, custom post type, category, tag and archive. Override any page by hand whenever you want.
* **Schema markup (structured data)** — Organization, WebSite, Article, Breadcrumb and more, as JSON-LD, written from your real content.
* **XML sitemap and image sitemap** — always current, no settings needed.
* **Canonical URLs and indexing rules** — sensible defaults that prevent duplicate-content problems.
* **Open Graph and Twitter cards** — your pages look right when shared.
* **Breadcrumbs, IndexNow and llms.txt** — discovery for search engines and AI assistants alike.
* Works with **any theme and any plugin's post types** — register a new post type tomorrow and it is optimized the moment it appears.

= A dashboard that tells the truth =

* A **site health score** measured from your actual pages — with the exact findings behind it.
* A **ranked to-do plan**: each recommendation explains what, why, the expected result, the risk, the time it takes and how confident the plugin is.
* **404 and broken link repair** — every dead address visitors hit is logged, and the fix form already suggests the page they were probably looking for.
* **Duplicate title detection**, thin-content findings, orphan pages, and a visual **map of your internal links**.
* An **accessibility check** for your content: heading order, unnamed links, "click here" anchors.

= AI SEO assistant (optional, your key, your budget) =

* Connect OpenAI, Anthropic, Google — or a **free local model** (Ollama, LM Studio). Nothing is sent anywhere until you connect one.
* Writes **missing meta descriptions** and **missing image ALT text** — only blanks are ever filled; your own words are never overwritten.
* An **ask-anything assistant** that answers from your site's real pages and shows which pages it read.
* A **hard monthly budget** in dollars — a ceiling, not a warning.
* **Apprentice Mode**: for as long as you like, the AI only writes a nightly note of what it *would* have done. When you trust it, grant exactly the tasks you choose. Every action is logged.

= Build websites: designs, custom post types, custom fields =

* **One-click website designs** — seven complete, self-hosted designs (travel, real estate, photography, portfolio and more) with live preview. Applying one uses your site name, tagline and logo automatically.
* **Custom post type builder** — create content types (tours, properties, services, teams…) with a visual **custom fields builder**: text, images, rich text, dates, options and more, drag-and-drop ordered, SEO-complete from the moment they exist.
* **Website blueprints** — one click generates the post types, fields and pages a whole business site needs.
* **The Loom** — save a fact once (opening hours, phone, address, a price), place it anywhere with a shortcode, and one edit updates every page instantly.
* **Announcements** with an end date that take themselves down — and reach search engines as structured data while they run.

= For developers and agencies =

* **Site export/import (the Charter)** — your whole configuration as one JSON file: diff it, version it, apply it to another site with a preview first.
* **Read-only REST API** and **WP-CLI commands** (including `wp odysseo assert` for CI pipelines and JSON output for multi-site dashboards).
* **60+ documented hooks**, extension points for your own agents, designs and assistant commands, and one-command scaffolds.
* Full documentation **inside the plugin** — handbook, tutorials, API reference.

= Private by design =

No tracking, no ads, no phoning home. The only outside requests are ones you switch on (your AI provider, IndexNow, a daily plugin-freshness check against wordpress.org — each disclosed, each with an off switch). Uninstalling removes the plugin's own data and never touches your content.

== Installation ==

1. Upload the plugin, or install it from Plugins → Add New.
2. Activate it.

That is the whole setup. Your site is already optimized. Everything under
Odysseo Core in the admin menu is optional.

== Frequently Asked Questions ==

= Do I have to configure anything? =

No. Every setting has a working default and the plugin optimizes your site with
none of them touched. Change something only when you want to differ from the
default.

= Will this conflict with my current SEO plugin? =

No. Odysseo Core detects the major SEO plugins and pauses its own output rather
than duplicating tags, and it tells you it has done so. Deactivate the other
plugin when you are ready to switch.

= Does it cost money to run? =

No. The SEO engine is entirely rule-based: free, instant, and it works offline.
AI features are optional, off by default, and cannot run at all until you set a
monthly budget.

= What happens when my AI budget runs out? =

AI work stops until the next month, or until you raise the budget. It is a hard
limit — the plugin refuses to start a task it cannot pay for. It does not
overrun.

= Does it add travel content types too? =

Yes. Odysseo Core also registers the travel content types the Odysseo theme is
built around — Destinations, Tour Packages, Fleet, Testimonials and Gallery —
along with a contact-enquiry form and a one-click demo importer. These are
optional: the SEO engine works on any site with any content, and the travel
types simply appear in your admin if you want them.

= Can I create my own content types? =

Yes — under Odysseo Core → Content Types. Pick a blueprint (Portfolio, Events,
Properties and so on) or name your own, and the content type is registered with
its taxonomies, Schema.org type and full SEO automatically. You can add custom
fields to it, link it to other content types, show it on the front end with the
[odysseo_content] shortcode, and export it to reuse on another site. No separate
CPT or custom-fields plugin is needed.

= Does it give pages an SEO score like Yoast or Rank Math? =

If you want one. Set a focus keyphrase on a post and Odysseo shows a green/amber/
red analysis and a score, plus an SEO column on your post lists. It is optional,
and switching it off changes nothing else — Odysseo still optimises every page
automatically. The difference from other plugins is that the score is advice, not
a chore: the mechanical work is already done for you.

= Does it work with WooCommerce, Elementor, Bricks, Divi or Oxygen? =

Products and any other custom post type are picked up automatically. Page
builders that store their content outside `post_content` may not produce an
automatic description, in which case write one on the page itself.

= Will it slow my site down? =

No. Nothing is computed on the front end beyond what the current page needs, and
all bulk analysis happens in background batches. The plugin adds no JavaScript to
your front end, and no CSS unless you choose to display its breadcrumbs — in which
case it is a single, few-hundred-byte stylesheet you can also turn off.

= What is the llms.txt file? =

It is a plain-language guide to your pages, published at yoursite.com/llms.txt,
for the AI assistants people increasingly ask instead of searching — ChatGPT,
Claude, Perplexity and Google's AI answers. Odysseo Core builds it automatically
from the same titles and descriptions your pages already use, and lists only pages
you allow search engines to index. Leave it on and it stays current on its own.

= Does it create redirects by itself? =

Yes, but only safe ones. When you change a published page's address, it adds a
redirect from the old address to the new so nothing breaks. It never overwrites a
redirect you made by hand, and every automatic redirect is listed and reversible.
It also logs the broken addresses visitors reach, so you can fix real dead ends
with one click rather than guessing.

= Does it tell search engines when I publish? =

If IndexNow is on, publishing or updating a page pings the search engines that
support it — Bing, Yandex and others — to recrawl that one URL. Only your own
public pages are ever submitted, never a page set to noindex, and nothing is sent
on a site that discourages search engines.

= Is my API key safe? =

Safest is to put it in `wp-config.php` as a constant, for example
`ODYSSEO_AI_KEY_ANTHROPIC` — the key then never touches your database, so
database backups and dumps cannot leak it. Keys stored through the admin are
encrypted with a key derived from your site's `AUTH_KEY`, which protects against
a database-only breach. Keys are never displayed back to you.

= Do you track me or collect any data? =

No. Odysseo Core has no analytics, no telemetry and no phone-home. It never sends
information about you or your site anywhere. The only outbound requests it can make
are ones you switch on and control: optional AI (only after you set an API key and
a spending budget) and IndexNow, which submits your own public page addresses to
search engines so they recrawl faster. With both off, the plugin makes no external
requests at all. One optional housekeeping check is on by default: once a day
the plugin asks the wordpress.org directory when each of your installed plugins
last released, so it can warn you about abandoned ones. It sends plugin slugs to
wordpress.org and nothing else, and one switch in Settings → Advanced turns it
off.

= Who owns my content and SEO data? =

You do — entirely. Nothing is stored in a proprietary format. Your posts, pages and
media are ordinary WordPress content. Your per-page SEO fields live in standard post
meta (`_odysseo_seo_*`), and content-model field values in post meta prefixed
`_odc_`. Your content types and their fields live in a normal
WordPress option, and any content type can be exported to a plain JSON file. Odysseo
never claims ownership of your content or your website.

= What happens if I deactivate or uninstall? =

Deactivating changes nothing about your content — your posts, pages, custom post
types and their data stay exactly where they are, and reappear if you reactivate.
Uninstalling removes only Odysseo's own settings and its derived tables (the search
index, the redirect and 404 logs, and similar caches, all rebuildable). It
deliberately keeps your `_odysseo_seo_*` page meta and your content-type
definitions, so switching away — or reactivating later — never deletes work you did.
There is no lock-in: content types export to JSON, and everything else is standard
WordPress you can take anywhere.

= I use Yoast, Rank Math, ACF or CPT UI — can I switch? =

Yes. When a major SEO plugin is active Odysseo stands down and tells you, so the two
never fight; deactivate the other when you are ready and Odysseo takes over. Because
Odysseo generates correct titles, descriptions and structured data automatically,
most sites need no import at all. Custom titles or descriptions you hand-wrote in
another plugin are stored in that plugin's own meta and do not transfer on their own
— so after switching, it is worth checking your most important pages and re-entering
any wording you want to keep. Custom post types and fields created elsewhere keep
working; Odysseo optimises them like any other content.

= How many plugins does this replace? =

For a typical site, Odysseo Core stands in for a stack of them: an SEO plugin, a
schema/structured-data plugin, an XML sitemap plugin, a breadcrumb plugin, a
redirect/404 plugin, a custom-post-type plugin and a custom-fields plugin — one
install, one settings area, one design, instead of seven that each need configuring
and can conflict with each other.

== Screenshots ==

1. The dashboard — your SEO health score, what it found, and every number live from your site.
2. The Activity log — every automated change, what ran it, what happened and when.
3. Website Blueprints — pick an industry and generate its whole content architecture in one click.
4. Content Models — every model with its entries, fields and categories, one Edit away.
5. Settings — every option in plain language, with technical terms one level down.

== Bundled assets ==

The design packs self-host every asset they use — no CDN, no external requests
on your site. Bundled fonts are open-licensed: Inter, Outfit, Cormorant
Garamond, Playfair Display, Plus Jakarta Sans and Instrument Serif under the
SIL Open Font License 1.1 (from Google Fonts), and Font Awesome Free icons
under the SIL OFL 1.1 (icons: CC BY 4.0). All other pack imagery consists of
original SVG placeholder illustrations created for this plugin.

== Changelog ==

= 2.21.0 =
* Changed: one theme. The dark (Dusk) theme and its toggle are retired — the light Daybreak theme is now the only theme, with every contrast value already WCAG-audited. Simpler product, smaller stylesheet, one look to polish. (Your previous theme choice needs no migration; the setting simply no longer exists.)
* New: The Library — the complete documentation, live inside the plugin. Odysseo Core → Documentation renders the Handbook (with a plain-language glossary for every nautical term), Tutorials, API reference, Architecture, the hook catalogue, the Charter specification and the project Constitution — from the same files that ship in the package, so the screen can never drift from the docs. Reachable from the Helm as "The Library".

= 2.20.0 =
* New: the Ensign — a read-only REST surface (/wp-json/odysseo/v1/…) flying the ship's full state: status, plan, brain, questions, entities, log and the Charter. Guarded by the same capability as every screen, it works with WordPress application passwords out of the box, and no route accepts a write — acting on a site stays behind its own nonce gates and blast doors. This is the primitive fleet consoles and CI pipelines build on.
* New: Shipwright scaffolds — wp odysseo make agent|pack|intent generates a complete, activatable extension plugin that works the moment it activates: a real agent reporting a real count, a token-bearing script-free design pack, a Navigator intent with an honest card. Every scaffold uses only the public filters — the same doors Odysseo itself uses.
* New: a burning Signal Fire now reaches search engines too, as SpecialAnnouncement structured data with its expiry declared — and leaves no schema behind once it retires.
* New: wp odysseo entities — the entity inventory (who and what the site actually talks about), from the extraction engine.
* New: docs/CHARTER-SPEC.md — the Charter format published as a specification: document shape, section semantics, the partial-apply and backup-first rules, secret exclusion, and versioning. The first piece of the Odysseo Protocol.

= 2.19.0 =
* New: Even keel — three accessibility defects assistive technology actually trips on, measured in your own content: heading-level jumps, links with no accessible name, and "click here"-style anchors. A Command Deck card lists the pages, worst first; each is a small edit where it lives.
* New: Standing orders — Apprentice Mode graduates. Grant individual classes of safe work (describe images; write missing descriptions, AI and budget permitting) and the nightly beat runs exactly those, logging every act as an act. One filter — odysseo_core_standing_orders_enabled — is a blast door that holds everything shut regardless of grants.
* New: Salvage — point wp odysseo salvage at a folder holding a site you own (home.html + style.css) and the pipeline re-rigs it into a living design pack: scripts stripped, your old brand tokenized into the site-identity token, dead links rewired to home, preloaders killed, local assets put on the design-URL token — then it appears beside the bundled designs with preview and one-click apply. Anything it could not make self-contained is reported in the pack's manifest, never silently shipped. --scuttle removes a pack completely.
* New: fleet-ready output — wp odysseo status --format=json and wp odysseo plan --format=json emit machine-readable ship state, the primitive an agency's fleet tooling builds on.

= 2.18.0 =
* New: the Wake — the editor sidebar now shows what a change to this page would touch: how many of your pages link here (named), how many this one feeds, and that a rename is safe because inbound routes follow through a redirect. Read live from the link graph.
* New: Decisions waiting — when several pages share one title, a memo assembles the evidence (inbound links, substance, description state per contender) and recommends which page should own the title, with its reasoning stated. The decision stays yours; the legwork stops being.
* New: the Dispatch — one click (or wp odysseo dispatch) drafts a plain-language month-in-review from the site's own activity log: real events, real counts, never published without you.
* New: the Charter now imports in the admin too — upload a charter on Settings → Advanced, review exactly what would change, then apply or discard. Nothing is touched before you have seen the diff.
* New: the Pilot's groundwork — free-text Navigator questions are now grounded in the pages of YOUR site most relevant to the question, and every answer arrives with a "Charts consulted" card naming those pages. No relevant pages means the answer says so instead of guessing.

= 2.17.0 =
* New: The Loom — declare a business fact (hours, address, phone, a price) once and weave it into any page with [odysseo_fact key="…"]; edit it once and every page tells the new truth. A contradiction watch lists pages still stating a fact's previous value in plain prose. Developers: odysseo_fact( 'key' ).
* New: The Charter — your site's whole definition (content models, settings, facts, design variants) as one readable JSON document. Download it from Settings → Advanced; diff and apply it with wp odysseo charter export / diff / apply. Credentials never travel with it, applying touches only the sections a document carries, and a backup of the previous definition is always kept.
* New: the Question Ledger — questions people ask the Navigator are counted (never stored with any visitor identity) and the most-asked appear on the Command Deck as the honest list of pages worth writing next.
* New: Apprentice Mode — flip it on and each night the plugin writes into the Activity log what it WOULD have done, drawn from the real plan, without doing any of it. Trust is earned by a narration that keeps being right.
* New: the Signal Fire — declare an announcement with an end date; it shows on the front of the site while it burns and retires itself the day it lapses, with a log entry saying so.
* New: dead ends now come with a likely destination — the repair form on the Command Deck pre-fills the page a lost visitor was probably seeking, computed from your own index.
* New: supply lines — a daily wordpress.org freshness check flags installed plugins with no release in over two years (off with one switch, sends only plugin slugs).
* New: AI provenance — every AI-written description stamps its object with task, provider, model and time; wp odysseo provenance reports the census.
* New: wp odysseo assert "bearing>=80 && orphans==0" — the live engines as a CI gate, so a deploy can fail because the site got worse.



= 2.16.0 =
* The release-candidate hardening: a full four-lens audit (security, performance, accessibility, directory standards) of every screen, query and asset — and every confirmed finding fixed.
* Performance: the front page no longer pays a per-testimonial query for its aggregate rating (one cached read, cleared when a testimonial changes); the image audit, link stats and content snapshot are computed once per dashboard paint instead of several times; The Chart draws from three batched queries instead of one per harbour; design previews are browser-cached; redirect chain-flattening narrows in SQL instead of loading the whole table.
* Accessibility: the default dark theme's links, primary buttons, search-preview text and captions now meet WCAG contrast in both themes; the Helm and Navigator keep keyboard focus inside while open and return it on close; the Helm gained a visible header button, real combobox semantics and spoken results; The Chart's harbours have accessible names and the whole map is available as a table; dashboard tabs are keyboard-operable with correct relationships; every input has a name; focus rings survive both themes.
* Design packs: every pack now self-hosts its fonts (SIL OFL, bundled as woff2) — no external font or image requests on your site; remaining third-party links and demo artefacts replaced with your own site's addresses and neutral demo content.
* Security: the public contact endpoint is rate-limited per address, and the onboarding dismissal is nonce-protected.
* Housekeeping: uninstall now removes the AI-OS options, per-user display preferences and every cached panel; the plugin-conflict notice only appears on Odysseo screens and the Plugins screen; duplicate schema-upgrade hook removed; bundled-asset licences declared in this readme.

= 2.15.0 =
* New: Odysseo is now a platform. Four new extension points let other plugins join the OS without touching core: register an agent into the Coordinator's plan (odysseo_core_agents — dismissals and learned weights apply automatically), add Navigator chips with their execution (odysseo_core_navigator_intents / _cards), ship a complete design pack from your own plugin with live preview and one-click apply (odysseo_core_designs with dir/url), and index anything in the Helm (odysseo_core_helm_index).
* New: a stable public API — odysseo_health(), odysseo_plan(), odysseo_brain() join odysseo_field(). These never change shape.
* New: WP-CLI — wp odysseo status, wp odysseo plan, wp odysseo brain: the same engines, from the terminal.
* New: docs/ARCHITECTURE.md — the platform's shape, contracts and worked extension examples; docs/HOOKS.md regenerated (60 filters, 9 actions).
* Improved: hot aggregate reads are memoized per request and invalidated on write — a dashboard paint costs one stats query, not ten.

= 2.14.0 =
* New: the Ship's understanding — with an AI aboard, one click lets the Brain read your own content and infer your site's purpose, industry, audience and tone. Stored with its date, clearly marked as AI-inferred, and from then on it grounds every AI answer. Without a provider it stays empty — the Brain never stores guesses it didn't make.
* New: the Full tune-up — one click on the Command Deck re-reads the whole site, fills missing image ALT text, and (with AI aboard) writes missing descriptions, all queued in the background. The first one-click bundle.

= 2.13.0 =
* New: the Website Brain — Odysseo maintains a live, factual understanding of your site (identity, content structure, models, health, link graph, thin pages), rebuilt on the daily heartbeat and shared by every intelligent feature, including the Navigator's answers.
* New: the agents and the plan — six specialists (SEO, Linking, Image, Technical, Content, Schema), each wrapping an engine that already exists, feed a ranked plan on the Command Deck. Every recommendation explains itself: why, expected result, risk, degrees gained on the Bearing, difficulty, time, and confidence — which is always "high", because these are measurements, not guesses.
* New: memory that learns — dismiss a recommendation and it stays gone (aging out after ninety days, since sites change); the kind of advice you dismiss speaks up less, the kind you act on speaks up more. Never asked twice.
* New: ask the Navigator "What should I do next?" and it speaks the plan.

= 2.12.0 =
* New: The Bridge — Settings re-presented, every one of them kept. A Connect strip leads with the three stations that unlock the OS — AI (live budget status, honest "not connected" state), Brand, and Organisation — each one click from its settings. The section list groups into tiers by what they unlock: Connect, Search appearance, Social & discovery, Repairs, Advanced. The full reset is fenced in a marked danger zone on Advanced, exactly as destructive things should be.

= 2.11.0 =
* New: The Chart — your site made visible, in the sidebar under Overview. Your most-linked pages drawn as harbours (sized by how many of your own pages link to them), internal links as dotted routes, pages missing descriptions shaded amber like shallows, and orphans as islets beyond the dotted edge of explored water. Click any harbour for its condition and one-click actions: open, edit, or head to Course corrections. Every position is computed from the live link index — a chart of the truth, not an illustration.

= 2.10.0 =
* New: the Helm — press Cmd/Ctrl+K on any Odysseo screen. The nine workspaces sit as waypoints on a course you steer with the arrow keys (spatial navigation, not another spotlight list), and typing searches everything aboard: every workspace, every setting by its plain-language label, your content models and the designs. Enter sails there; Escape lowers the Helm.
* New: the Charting — the first time you open the Command Deck, one question: "Where are you headed?" Five destinations (launch a website, build content, fix technical SEO, bring AI aboard, explore everything) or "Just watch it work". One click, retired forever — never a modal, never blocking.

= 2.9.0 =
* New: the editor speaks Meridian — each page's SEO score is now a mini Bearing right in the analysis box: true north at the top, the needle at that page's real deviation, "This page is 14° off true north" spelled out. Same score, same checks — presented as an instrument.
* Improved: analysis checks render as signal lines with a coloured verdict edge — scannable as a column, with the plain-language legend unchanged.

= 2.8.0 =
* New: the builder's live rail — while you build a content model, a sticky panel shows exactly what your site will render: fields grouped Above the content / Below the content / Backend only in their true order, value-only labels marked, the model's Schema.org identity and address, and where every Connection field points. Read from the stored definition, so the preview can never disagree with reality.
* Improved: dragging a field now shuffles neighbouring rows smoothly, and the dropped row settles with a brief starlight ring.

= 2.7.0 =
* New: the voyage — generating a website or applying a design now shows the course while it runs: the real steps the engine executes (Models → Fields → Categories → Pages → Connections → SEO & schema), labelled as waypoints with the star under way. No fake progress ticks, ever.
* New: Landfall — arrival is a real summary, not a notice: the true inventory of what now exists (models, ready-made fields, site pages) with the three next headings one click away: add your first entry, manage the models, see your site. Applied designs land the same way.
* Improved: the AI design generator shows your live budget line — the same hard ceiling every AI task obeys.

= 2.6.0 =
* New: Course corrections — the Issues tab reborn. Every problem class is a deviation card showing the exact degrees your Bearing gains when it is fixed (computed with the score's own formulas), the stakes in one line, and the full page lists one click deep — duplicate titles, missing descriptions, orphan pages and ALT-less images, each page linking straight to its editor. Corrected classes settle into a starred, faded card; a fully corrected site shows a calm "On course." horizon.

= 2.5.0 =
* New: Explore — the map of everything Odysseo does, in the sidebar under Overview. Eleven feature cards, each with a live status read from its real engine (running, standing by beside another SEO plugin, repairs waiting, orphan pages found…), a real number where one exists, a why-it-matters line that surfaces on hover, and one click to launch. Discovery without documentation.

= 2.4.0 =
* New: the Navigator — Odysseo's assistant, aboard every screen. Open it from the header and take a heading: check your site's bearing, list pages missing descriptions, surface duplicate titles, or launch the ALT expedition — all real capabilities that act instantly, no AI required. Free-text questions go to your connected AI, grounded in your site's real numbers and governed by your hard monthly budget, whose status stays visible in the panel at all times.
* New: without an AI provider the Navigator still works — every chip acts, and free text answers with a warm explanation of how to connect one (free local models included), never an error.

= 2.3.0 =
* New: the Command Deck — the dashboard's health score is now the Bearing, Odysseo's own instrument: true north at the top, a needle that sweeps to your site's real deviation on load, and an arc showing exactly how far off course you are. Same honest number, presented as a heading.
* New: four meridian gauges decompose that score into its real parts — Descriptions, Distinct titles, Linked pages, Indexable share — each bar the score's own arithmetic, each explainable on hover.
* New: "Distance made good" — the engine's silent work finally gets credit: what Odysseo completed for you this week, from the real activity log, with the full log one click away.
* New: "Where are you headed?" — four destination cards guiding the next step: create a website, fix issues, build content, connect AI.

= 2.2.0 =
* New: Meridian — Odysseo's own design language, phase one. A dark-first Dusk theme (with a Daybreak light theme one click away — the star in the header is the switch, remembered per user), cartographic contour texture on every card, and chart-sheet depth in place of flat panels.
* New: the interface is alive — dashboard numbers roll up like instrument digits, cards drift in as you scroll, buttons respond to press and glow on keyboard focus, and every form locks with a spinning star the moment you submit, so nothing can be double-clicked into running twice.
* Improved: every animation respects your system's reduced-motion preference.

= 2.1.0 =
* New: Site designs — seven ready-made looks on the Website Blueprints screen (Atlaso, Prismeo, Haveno, Hestio, Aquilo, Lyrio, Odysseo). Every card shows the real design as a live preview — click for full size — and applying publishes it as your front page in one click: any theme, assets served from the plugin, re-applying updates the same page instead of duplicating it.
* New: applying a design is a full one-click site — it also generates the design's paired website blueprint (content models, fields, categories, connected pages, SEO and schema) and embeds live content grids on the front page, so the site grows as you write. Nothing is static.
* New: designs are dynamic — the applied page automatically wears your site's own identity: your site name and tagline replace the design's demo brand, and if you have uploaded a logo under Appearance → Customise, it appears everywhere the design shows a logo. Nothing to find-and-replace.
* New: Create a design with AI — describe any business, pick a starting design, and the connected AI (a free local model works) restyles it to match. The result saves as a design of its own, governed by your monthly AI budget like every other AI task.

= 2.0.9 =
* Improved: Website Blueprints now show exactly what each one builds — stat pills (models, ready-made fields, category groups, connections, site pages), each model as a chip with its field count, and a "See everything it creates" panel listing every field and connection by name. The button is now "Build this website", because that's what it does.
* Improved: one button component now styles every action on every Odysseo screen — same size, same icons, same hover — defined once and reused, like a theme component.

= 2.0.8 =
* Improved: every action on a content model card is now one consistent button size with its own icon — edit, add, duplicate, export and a properly styled remove — so the row reads as a single toolbar.

= 2.0.7 =
* Improved: creating a content model — from a blueprint card or your own names — now lands you straight in its field builder, ready to add fields.
* Improved: the Content Models page leads with your models; each is a card with its icon, address, entry and field counts, and two unmissable buttons: "Manage fields" (build) and "+ Add" (write). Creation moved below, with "+ Build your own" and "Import from a file" as clear actions.

= 2.0.6 =
* New: HTML / Code field type for developers — a code editor with syntax highlighting for hand-written HTML and CSS, printed verbatim on the front end. Administrators may include style blocks; other roles are limited to safe post markup, the same policy as WordPress's Custom HTML widget.
* New: per-field "Show the label" control — untick it in a field's (or sub-field's) Edit panel for value-only display on your site, no more forced "Field Name:" prefixes.
* Improved: Rich text fields now include the Add Media button, so one field can mix writing and images exactly like the post editor.
* Improved: placement is clearer in the builder — ↑/↓ arrows on every row and a note explaining that above-content and below-content fields render as two blocks, ordered within each.

= 2.0.5 =
* New: drag-and-drop field ordering — grab the ⋮⋮ handle in the field builder or in a post's fields box and drop the field where it belongs. The order is saved to the content model, so the builder, every editor and your site's pages all follow it instantly.
* New: a field guide on every content model's screen — all 18 field types explained with a live preview of what writers see and a copy-ready theme snippet, using your own field names.
* Improved: after adding or editing a field, the screen reopens exactly where you were — building a loop field's sub-fields no longer collapses between adds, and the panel scrolls back into view.
* Improved: a more polished builder — real buttons for "+ Add field", clearer edit panels with an accent border, hover states, and a saved-order flash.

= 2.0.4 =
* Fixed: a fatal error when opening a content model's field builder after adding a field.
* New: fields are fully editable after creation — click Edit on any field to change its label, type, choices, connection or placement inline, while its name (and so its template tag and saved values) stays safely fixed.
* New: choose your own field name when adding a field — it auto-fills from the label as you type, or type your own; leave it blank to use the label.
* Improved: the field builder redesigned in the style of a dedicated field plugin — each field is a clean row with reorder arrows, a type badge and its template tag; "+ Add field" expands only when you need it; and forms only show the options the chosen field type actually uses.
* Improved: a repeatable group's sub-fields are now managed inside that field's own edit panel — one self-contained place to build a loop, with sub-fields editable the same way.

= 2.0.2 =
* Improved: the dashboard's detail sections now live in tabs (Overview, Issues, Automations, Redirects & 404s, Activity) — no more long scroll or uneven columns.

= 2.0.1 =
* Improved: a denser, calmer dashboard — every card shows its top five with the rest a click away, queue tasks use plain names, and the automations table breathes.
* Improved: the admin menu icon is now the Odysseo brand mark.
* Fixed: dashboard cards could visually overlap in two-column layout.

= 2.0.0 =
* New: an autonomous content-type builder — create Portfolios, Events, Properties and more in a click, each registered with taxonomies, Schema.org type and full SEO automatically.
* New: a built-in custom-fields engine — 17 field types including image, gallery, date, select, true/false, relationship (link content types) and repeater (repeating rows); read on the front end with odysseo_field().
* New: a [odysseo_content] shortcode for a filterable, sortable, paginated grid of any content type, on any theme.
* New: export, import and duplicate content types — move a type and its fields between sites, or copy it in place.
* New: on-page SEO analysis — a focus-keyphrase check with a green/amber/red score in the editor, and an SEO column across your post lists. Optional.
* New: llms.txt, a plain-language guide to your pages for AI search engines (ChatGPT, Claude, Perplexity, Google AI), served at /llms.txt and built from your own titles and descriptions.
* New: IndexNow — publishing or updating a page asks the search engines that support it (Bing, Yandex and others) to recrawl it straight away.
* New: automatic redirects when a published page's address changes, and for attachment pages; plus broken-link (404) tracking with one-click redirect creation.
* New: a visible breadcrumb trail — shortcode, template tag or automatic — built from the same source as the BreadcrumbList structured data, so the two always agree.
* New: internal-link suggestions while you write, and a site-wide view that pairs each orphan page with the related pages to link it from.
* New: an image alt-text audit across your indexable pages.
* Improved: the XML sitemap is now a paginated sitemap index, includes your images for Google Images, lists only indexable pages, and supersedes WordPress core's own sitemap so the two cannot disagree.
* Improved: a manual redirect may point to another domain when you enter a full URL, resolved safely.
* Fixed: the database schema is brought up to date automatically after a plugin update, not only on reactivation.

= 1.0.0 =
* First public release.
* Automatic titles, meta descriptions, canonical URLs, robots directives, Open Graph and Twitter Cards for every URL on the site.
* Universal support: every post type and taxonomy, including ones registered after installation.
* Indexing policy with correct defaults — search, attachment and date archives kept out of the index; the WordPress search-engine visibility setting always respected.
* Template and variable system with 29 variables and automatic cleanup of unused separators.
* Background automation on Action Scheduler, with an activity log of every change.
* Site-wide duplicate title and missing description detection.
* Optional AI (Claude, OpenAI, Gemini, OpenRouter, Ollama, LM Studio) behind a hard monthly spending cap.
* Conflict detection for the eight major SEO plugins.
* Travel content types (Destinations, Tour Packages, Fleet, Testimonials, Gallery), contact enquiries and a demo importer, for sites built on the Odysseo theme.

== Upgrade Notice ==

= 2.0.0 =
A major release: an autonomous content-type builder with a 17-type custom-fields engine, optional on-page SEO analysis, and the discovery suite — llms.txt, IndexNow, a paginated image sitemap, visible breadcrumbs, automatic redirects with 404 tracking, internal-link suggestions and an image alt-text audit. Everything new is on by sensible default.

= 1.0.0 =
An autonomous SEO engine, plus the Odysseo travel content types, in one plugin.
