| @@ -1,52 +1,8 @@ | ||
| 1 | 1 | === xSpeed Cache — full changelog === |
| 2 | 2 | |
| 3 | 3 | The three most recent releases are listed in readme.txt. Everything since 1.0.0 is below. |
| 4 | 4 | |
| 5 | -= [1.3.4] – 2026-09-20 = | |
| 6 | - | |
| 7 | -**Consent-manager scripts marked late are now always left alone, below-fold sections skip rendering work until they are needed, and xSpeed's MCP server shares a site cleanly with other MCP plugins.** | |
| 8 | - | |
| 9 | -Optimization: | |
| 10 | -- New: Below-fold sections are rendered lazily with content-visibility: auto, so the browser skips their layout and paint work until they scroll into view. | |
| 11 | -- New: Block-editor stylesheets are stripped from anonymous frontend pages that do not use any blocks. | |
| 12 | -- Fixed: Scripts that another plugin marks data-no-optimize or data-no-minify late — as consent managers such as Borlabs Cookie do — are restored to their original URL and left alone by minify, defer and delay, however late the marker is stamped. | |
| 13 | - | |
| 14 | -AI / MCP: | |
| 15 | -- Improved: The AI & agents screen now leads with the MCP server and says what each of its tools does, with descriptions shown in full. | |
| 16 | -- Improved: An assistant already connected over OAuth may ask for approval once more after updating — nothing needs re-entering, and read-only connections stay read-only. | |
| 17 | -- Fixed: An AI assistant can now connect to xSpeed and to another MCP plugin on the same site. xSpeed's OAuth details moved to an address of their own under /xspeed/mcp, and the site-wide address is handed over as soon as another plugin asks for it — where nothing else wants it, xSpeed keeps answering there. | |
| 18 | - | |
| 19 | -Dashboard & Admin UX: | |
| 20 | -- Fixed: Buttons can carry a border and always show keyboard focus, and the Cloudflare Dev-mode controls use proper button styling. | |
| 21 | - | |
| 22 | -= [1.3.3] – 2026-09-16 = | |
| 23 | - | |
| 24 | -**Consent gets a dashboard home, the cache engine learns to leave non-HTML alone, and uncacheable pages now tell the CDN so.** | |
| 25 | - | |
| 26 | -Privacy & Analytics: | |
| 27 | -- New: A "Privacy & usage data" panel to view and withdraw usage-analytics consent any time, with a matching wp xspeed privacy command. | |
| 28 | -- Improved: The setup wizard's analytics consent now defaults to off and is only ever an explicit opt-in. | |
| 29 | - | |
| 30 | -Caching: | |
| 31 | -- Fixed: WordPress's virtual robots.txt (and favicon) is no longer cached or minified, so every directive and newline reaches crawlers intact. | |
| 32 | -- Improved: /robots.txt joined the default cache exclusions, and the sitemap pattern now matches sitemaps.xml too — existing installs keep their working exclusion through the rename. | |
| 33 | - | |
| 34 | -Cloudflare & CDN: | |
| 35 | -- New: A page xSpeed refuses to cache now sends no-store edge headers, so a CDN never freezes a half-optimized or excluded page. | |
| 36 | -- Fixed: The deferred Cloudflare purge batch is bounded, cleared on deactivation, and says so when a purge is refused. | |
| 37 | - | |
| 38 | -Optimization: | |
| 39 | -- Fixed: Scripts marked data-no-optimize or data-no-minify are left completely alone by minify, defer and delay — consent-manager configurations always ship current. | |
| 40 | -- Fixed: xSpeed's own scripts are never deferred or delayed by its own optimizer. | |
| 41 | -- Fixed: The Conservative preset now switches LCP preload and preconnect off, matching its "page cache + GZIP only" promise. | |
| 42 | - | |
| 43 | -Dashboard & Admin UX: | |
| 44 | -- Improved: Preload now reports what actually happened — how many pages are warming, and the server's reason when a crawl cannot start. | |
| 45 | - | |
| 46 | -Reliability: | |
| 47 | -- Improved: Uninstall now removes all usage-tracking state, the scheduled send, and every leftover option row. | |
| 48 | - | |
| 49 | 5 | = [1.3.2] – 2026-09-15 = |
| 50 | 6 | |
| 51 | 7 | **Purging is now a contract other caches can join: clearing xSpeed's page cache also invalidates LiteSpeed Cache and the host's nginx FastCGI cache, and every purge is scoped to exactly the site and pages it was asked for — including on multisite.** |
| 52 | 8 | |