Skip to content

v1.7.0-beta.6

Pre-release
Pre-release

Choose a tag to compare

@millipress-bot millipress-bot released this 08 Jul 14:52
e4801d9

1.7.0-beta.6 (2026-07-08)

Stale-while-revalidate regeneration was storing serve-time headers — including injected Age and Cache-Control: no-cache — causing regenerated entries to replay no-cache forever and remain edge-uncached. That is fixed: a new millicache_entry_headers filter runs at the single store chokepoint for both miss-capture and background regen, serve-time headers are scrubbed before storage, and regen now uses the original stored headers as its base rather than the frozen post-fastcgi_finish_request() header table.

Cache hits now emit an Age header per RFC 9111, so downstream CDN edges subtract elapsed time from the freshness window and expire their copy in sync with this entry rather than resetting to a full lifetime.

A new 5 MB entry size cap (MAX_ENTRY_SIZE) rejects oversized responses — such as PDF exports — before they reach Redis, preventing maxmemory exhaustion and legitimate-page eviction.

The Status panel gains an informational check tier (gray info icon, no health impact) for neutral facts and features that are off by choice, with checks now ordered by severity. The millicache_updates filter is evaluated at update-check time rather than constructor time, so filters registered in functions.php or mu-plugins are honored. Define MC_UPDATE_PRERELEASE to opt a site into prerelease builds.

Features

  • cache: cap entries at 5MB raw to protect Redis from oversized responses (2e2511f)
  • response: emit Age header on cache hits (RFC 9111) (035bd24)
  • status: informational check tier, severity ordering, sticky modal tabs (ec6a249)
  • updater: honor millicache_updates at check time + add prerelease opt-in (0153b35)

Bug Fixes

  • cache: stop SWR regeneration from storing serve-time headers (2447389)
  • drop-in: remove Plugin Name header so the drop-in is not listed as a plugin (c532c15)
  • release: isolate Strauss from setup-php's github-oauth token (85b642e)

Performance Results

Loading 6.7x faster with MilliCache!

Metric Without Cache With MilliCache Improvement
Server Response (TTFB) 50ms 7ms 85% faster
Page Load (LCP) 104ms 60ms 42% faster

Server Response is the primary metric for page caching. It measures how fast the server delivers the HTML. MilliCache focuses on serving cached pages instantly, eliminating database queries and PHP processing.

Page Load includes frontend rendering time, which depends on themes, scripts, and assets. Content optimization is outside MilliCache's current scope.

Technical Details

Cache Efficiency

  • Database queries: 27 → 0 (100% reduction)
  • Response time range: 7ms-61ms (cached) vs 47ms-66ms (uncached)

Cache Generation (First Request)

  • Total processing: 56.64ms
  • Before template: 28.71ms
  • Template rendering: 27.94ms

Test Configuration

  • Iterations: 50 (3 warm-up runs discarded)
  • Outliers removed: 10
  • Timestamp: 2026-07-08T14:50:36.802Z
  • Commit: e4801d9

Regression Analysis

  • Status: PASS
  • Performance stable: 6.88x -> 6.70x (-2.5%)
  • Threshold: 10% slowdown triggers failure