=== Optimizador Pro NotoriusVision (OPNV-WP+SWNV / OPNV SOLΞ WP) ===
Contributors: David Muñoz Cabrisas, Soledad Sánchez Mohamed
Tags: optimize, images, webp, ai, seo, performance, privacy, widgets, cache, sre, health, artifact
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.3
Stable tag: 1.0.191
License: Proprietary
License URI: https://notoriusvision.com/legal/opnv-eula

WordPress optimization suite with health/evidence contracts, AI, images, SEO, compliance, Art&Fact HTML, and NV widgets.

== Description ==

OPNV-WP+SWNV (OPNV SOLΞ WP) combines performance, security, AI content workflows, and compliance in one plugin with ModuleShell UI, local telemetry, and verifiable operational contracts (Health, Evidence, Grounding, Catalog, Consumer).

Doctrine: OPNV does not certify capabilities; OPNV certifies observable outcomes.

= Authorship and ownership =

* Program co-owners: Soledad Sánchez Mohamed and David Muñoz Cabrisas
* Development: David Muñoz Cabrisas; Soledad Sánchez Mohamed
* Validation: Soledad Sánchez Mohamed
* «Notorius Vision» / «OPNV-Systems»: trade names with no legal personality (trade-name owner: Soledad Sánchez Mohamed)

= Main modules =

* **Dashboard** — Control center, healthcheck, AI orchestration
* **AI Providers** — API key vault (OpenAI, Gemini, Claude, Ollama, etc.)
* **Prompt library** — Templates for SEO, content, images, and system tasks
* **Content Studio** — Assisted generation in the editor
* **Translation** — Multilingual workflows
* **Images** — WebP, AVIF, orphans, WPO queue
* **Semantic SEO** — Inventory and metadata optimization
* **Art&Fact HTML** — Hybrid static HTML + CMS delivery (cart/account stay live)
* **Monitor / Cache** — Queues, metrics, cache purge and rebuild
* **Compliance** — Cookies, privacy, GDPR banner
* **NV Widgets** — Shortcodes, FAQ, accessibility, front RGPD
* **SRE / Health / Copilot** — Observability, health contracts, grounded assistance

= License =

Proprietary software of Soledad Sánchez Mohamed and David Muñoz Cabrisas.
See `license-en.txt` and `eula-en.txt` in the package (legal docs v1.2 · October 2026).
Spanish versions: `license.txt`, `eula.txt`, `readme.txt`.

= Requirements =

* WordPress 6.4+
* PHP 8.3+
* Recommended extensions: GD or Imagick, cURL, JSON, mbstring

== Installation ==

1. Upload `OPNV-WP+SWNV_v1.0.191.zip` via Plugins → Add New → Upload Plugin
2. Activate OPNV-WP+SWNV
3. Accept the EULA if the legal modal is shown
4. Open **OPNV+IA → Dashboard** for the initial healthcheck

== Frequently Asked Questions ==

= Is it open source? =
No. OPNV-WP+SWNV is proprietary. Some embedded third-party components (e.g. Adapta RGPD) keep their original licenses.

= Who owns it? =
Program co-owners are Soledad Sánchez Mohamed and David Muñoz Cabrisas.
Notorius Vision is only the distribution trade name.

= Do I need paid APIs? =
On Free you can use manual prompts and your own keys. Pro/Agency expand automation and limits.

== Changelog ==

= 1.0.191 =
* Fixed: Governance showed 4 "Provider missing documentation" warnings because the AI provider docs were not shipped with the plugin; they now ship in the ZIP and the "Providers" counter reflects the docs that actually exist.

= 1.0.190 =
* Fixed: the "Last boot error" notice stayed on the dashboard even when the plugin booted fine; it now clears itself once boot works again and shows when the error happened.

= 1.0.189 =
* Safer updates: before every OPNV-WP update (manual or automatic) a copy of the installed version is saved to wp-content/opnv-rollbacks/ (the 3 most recent are kept).
* If the plugin enters Safe Mode after an update, the Safe Mode screen itself lets you go back to a previous version in one click, without leaving the admin. The same panel is available in OPNV Doctor and in the Control Center.
* Automatic-update switch for OPNV-WP and OPNV Doctor. After rolling back, automatic updates are turned off and the withdrawn version is not reinstalled on its own.
* Fixed: Safe Mode cleared itself on the next request when the core failed to start, so the recovery panel was rarely reachable.

= 1.0.188 =
* "NV Multi-AI" assistant: Chat answers directly in the panel with the provider you choose (if it fails, the other active providers are tried in order). If none answers, you get the prompt to copy and paste as before.
* Library: "🚀 Run with AI" available on every plan; the template is filled with the page data and shows the result.
* FREE plan with full manual AI; the PRO plan will add task automation.
* Fixed bugs that made Chat unusable (blank after the first message) and Library (stuck on "Filling variables…").

= 1.0.187 =
* AI Services redesigned: proper margins, no panels inside panels, and the "Save vault" bar stays at the bottom while you browse the catalogue.
* "NV Multi-AI" assistant: new help in AI Services (where it appears, how to open it, what it needs and what each tab does).
* Each provider shows its logo or a coloured monogram, and a label: "Works with the assistant" or "Catalogue only".
* New providers: xAI (Grok), Together AI, Fireworks AI, Cerebras, Moonshot (Kimi) and NVIDIA NIM. Cohere and Alibaba Qwen now work with the assistant. For these, type the model in the provider card.
* Claude: models updated to the 5.5 family.
* Assistant: Chat's "1. Open AI" opens the provider's website and "🚀 Run with AI" appears on the PRO plan.

= 1.0.186 =
* "NV Multi-AI" assistant: the panel fits its frame. The header has two rows (title and window buttons on top, tabs below) and the close button is always visible. It closes with ✕, Esc or the 🤖 button.
* Assistant: "Save settings" (position and mode) and docked mode work; when docked, the 🤖 button sits next to the panel and the panel no longer covers the admin bar.
* Assistant: the prompt library shows in one column inside the panel; "Apply SEO", "Apply to post", trends and history use the right REST API (they used to fail with 403).
* Assistant: removed the "Console" tab, which did nothing; health status is under "Impact".

= 1.0.185 =
* "NV Multi-AI" assistant: when switched on it now really works. Only its own REST routes are registered (providers, prompts, templates, favourites, vectors, analytics and generation with fallback), and Chat, Library, Arena and Impact are back. Only for users who can edit; the rest of the internal API stays unexposed.
* AI: generation calls Gemini, Claude and OpenAI-compatible providers (DeepSeek, OpenAI, Mistral, Groq, OpenRouter…) and tries the next one if a provider fails.
* SEO: title, description and focus keyword are read and saved in Rank Math, Yoast, SEOPress and All in One SEO (they used to fail).
* Database: the prompt vector, history and cluster tables and the saved-content table are created. The providers table includes the sort order on new installs.

= 1.0.184 =
* "NV Multi-AI" assistant: its own switch in AI Services, off by default. When on, it only appears in the post/page editor and on the site for users who can edit. Chat, library, Arena and impact stay hidden while their API is unavailable.
* Accessibility: button icons carry a content-based `?ver`, so a damaged copy cached by the CDN or browser (one year) is not served again.

= 1.0.183 =
* Accessibility: `[swnv_accessibility]` without `anchor` renders where it is placed (inline), like `[swnv_accessibility_voice]`. The floating button only appears with "Site-wide" or `anchor="floating"`.

= 1.0.182 =
* Admin: each "saved" notice appears only once (a single `.wp-header-end` per page).
* NV Widgets: only the notice for the saved section is shown (accessibility, voice, APIs or debug).
* NV Widgets: fixed "current is not defined" in the section bar highlighting.

= 1.0.181 =
* Hemeroteca: the inventory shows, per type, "Selected for archiving" and "Archived", plus the date and user of the last review.

= 1.0.180 =
* Kuxu: credentials vault (cms.kuxu-credentials 0.1.0), off by default. When enabled, Kuxu VCS (GitHub) stores its token there. Master key outside the webroot and single-use handles.
* Assistant: fixed admin JS errors and REST calls now use the `wp_rest` nonce.
* Accessibility: "Stop" button for reading out voice search results.
* Dashboard: metrics detail also works with plain permalinks.

= 1.0.179 =
* When uploading the plugin, the update screen logo is centered and twice as large.
* Kuxu Connect: shown by its name; GitHub no longer has its own card (it is a connector inside Kuxu Connect). Information panel and governance docs.

= 1.0.178 =
* Debug: the class-loader trace is only written with `OPNV_DEBUG_AUTOLOAD`; `WP_DEBUG` no longer floods debug.log.
* Database: the table check runs once per version, not on every request.
* PHP 8.5: removed `setAccessible()`, implicit-nullable and Mustache deprecation notices.
* Class loader: classmap completed (fewer disk lookups).

= 1.0.177 =
* Privacy Suite: full boot (migration, audit and Google Consent Mode) and banner JS paired with its CSS.
* GDPR: the Adapta banner animation applies again.
* Artifact translation: glossary v2.

= 1.0.176 =
* Privacy Suite: module boot on `plugins_loaded` restored; legal documents popup, cookie banner, third-party script blocking and cookie scanner work again.
* Cookie scanner: detection pattern no longer breaks on keys containing slashes.

= 1.0.175 =
* Hemeroteca 0.1.6: explainable simulation (rules evaluated, readable reason per item, status filters). Read-only.

= 1.0.131 =
* Translation 1.11.0: full multilingual reset (Simulate / Reset with typed RESET MULTILINGUAL)
* Language purge/rebuild AJAX wired (opnv_translation_purge_language / rebuild_language)
* Fix /es/ colliding with a page slug (e.g. /esaldiak/) when site source is Spanish

= 1.0.130 =
* Fleet product identity: OPNV-WP+SWNV_v1.0.130
* License: HMAC without embedded SECRET_KEY (WP salts / OPNV_LICENSE_HMAC_KEY)
* Public package: no fleet inventory or operational CHANGELOG-38 files
* ConstitutionCompiler: no eval() (hosting AV false positive)

= 1.0.129 =
* Fleet product identity: OPNV-WP+SWNV_v1.0.129
* SOS: polished Support UI (hero + stepped cards)
* SOS: Doctor + plugin soft-error diagnostics pack on ticket (sos-diag)
* StarGate: SafeLogger/SWNV error+critical → Node-02 (configuration_error, rate-limited)
* Widgets 1.3.19: soft-error bridge to fleet
* Widgets 1.3.18: log timestamps labeled Zulu (UTC) + Doctor / SOLΞ Health CTA
* Widgets 1.3.17: Debug/Logs panel restored on Widgets (admin toggle)
* Widgets 1.3.16: YouTube Gallery — Grid, List and Slider layouts
* Widgets 1.3.15: YouTube gallery — clear error when API key HTTP referrer blocks the site
* Widgets 1.3.14: voice back inside Accessibility; voice FAB Icon/Look/Position actually updates

= 1.0.121 =
* Fleet product identity: OPNV-WP+SWNV_v1.0.121
* Widgets 1.3.13: editor preview (flat fields on opnv-widget-editor); Voice panel (#swnv-sec-voice); instance/export button contrast

= 1.0.120 =
* Fleet product identity: OPNV-WP+SWNV_v1.0.120
* Widgets 1.3.9: single-page sticky anchors (no classic tabs); no RGPD in Widgets; voice+mic A11Y-VM

= 1.0.119 =
* Fleet product identity: OPNV-WP+SWNV_v1.0.119
* Widgets 1.3.0: restore voice+mic in Accessibility (A11Y-VM-001); RGPD stays out of SW catalog

= 1.0.118 =
* Fleet product identity: OPNV-WP+SWNV_v1.0.118
* Widgets 1.2.2: FAB catalog cms.accessibility 1.1.0 (fab-looks.json) on page=opnv-widgets

= 1.0.117 =
* Fleet product identity: OPNV-WP+SWNV_v1.0.117
* Safe Boot: auto-clear latch when Bootstrap loads; 3 strikes before Safe Mode (OPcache race)
* Fixes Salud/Runtime «no permission» when a blip re-latched Safe Mode

= 1.0.116 =
* Fleet product identity: OPNV-WP+SWNV_v1.0.116
* BatchAjax + remediation shield-only

* Images: restore BatchAjaxController (opnv_list_conversion_families / batches)
* Remediation: shield-only (no boot latch); Hub 429/5xx backoff

* Images (visual 2.4.3): restore truncated Domain_Images (LazyLoad, BatchProcessor, OrphanDetector, Stats, LCP, Trash, Detectors, MediaIntegrity)
* Converter: CONVERSION_MAP + destination_path

= 1.0.115 =
* Fleet product identity: OPNV-WP+SWNV_v1.0.115
* Domain_Images restored + Safe Mode/Queue

= 1.0.114 =
* Fleet product identity: OPNV-WP+SWNV_v1.0.114
* Images (visual 2.4.2): restore full OrphanDetector (normalize_upload_root family)
* Includes 1.0.113 fixes (map_perceptual_quality, Safe Mode spam, QueueEngine table)

= 1.0.113 =
* Fleet product identity: OPNV-WP+SWNV_v1.0.113
* Images (visual 2.4.1): Converter::map_perceptual_quality() / get_unified_quality()
* SettingsRegistry: AI_OPTION_GROUP + tone/length options
* Safe Mode: one log/hour; clear orphan cron hooks with missing schedules
* QueueEngine: ensure opnv_task_queue table + every_minute schedule

= 1.0.112 =
* Fleet product identity: OPNV-WP+SWNV_v1.0.112
* Art&Fact: Settings::hybridInfoHtml() + edge_runtime 1.7.4 (Information panel)
* ModuleShell: notices anchored outside hero (wp-header-end)
* Fleet AdminMenu: Ads / Suite Social / Health / WAF
* Clean package: no k8s/apps/deploy/scripts/dev; EULA/license/readme v1.2

= 1.0.0-rc.1 =
* Administrative deposit tag; EULA/license/readme clarify natural-person co-owners

= 0.4.8 =
* Historical operational hotfix series (see internal fleet docs)
