| @@ -268,8 +268,9 @@ | ||
| 268 | 268 | // cache-coverage features (404 / search / feed / REST / rules / |
| 269 | 269 | // maintenance) into one sidebar sub-item (FBS-83633). |
| 270 | 270 | Module_Registry::register( new \XSpeed\Modules\CacheCoverage\CacheCoverageModule() ); |
| 271 | 271 | Module_Registry::register( new \XSpeed\Modules\Fonts\FontsModule() ); |
| 272 | + Module_Registry::register( new \XSpeed\Modules\RenderSkip\RenderSkipModule() ); | |
| 272 | 273 | Module_Registry::register( new \XSpeed\Modules\ResourceHints\ResourceHintsModule() ); |
| 273 | 274 | // AI Privacy (GDPR off-switch) ships in Free even though every AI |
| 274 | 275 | // *feature* is Pro — privacy is a right, not a paid tier. FEATURES.md |
| 275 | 276 | // §AI row 6 mandates it. Without this registration the module was dead |
| @@ -286,8 +287,12 @@ | ||
| 286 | 287 | // snapshot is onboarding/diagnostics, not a paid value-add, so every |
| 287 | 288 | // user gets it. The snapshot degrades gracefully without Pro (Pro |
| 288 | 289 | // version/license fields fall back to defaults via defined()/get_option). |
| 289 | 290 | Module_Registry::register( new \XSpeed\Modules\Support\SupportModule() ); |
| 291 | + // The dashboard control for usage-analytics consent. Consent used to | |
| 292 | + // be collectable only in the wizard and withdrawable nowhere, while | |
| 293 | + // the wizard and readme both promised a dashboard switch. (#437) | |
| 294 | + Module_Registry::register( new \XSpeed\Modules\Privacy\PrivacyModule() ); | |
| 290 | 295 | // MCP remote control (AI assistants) — Free. The plugin serves the |
| 291 | 296 | // MCP protocol at the site's own /xspeed/mcp URL; the only gate is |
| 292 | 297 | // the per-site connection token an admin mints via Connect. No |
| 293 | 298 | // license, no hosted infra. See IMPLEMENTATION.md §17. |