# Changelog of Core Web Vitals Bulk Auditor (Lighthouse) (`madpai/web-vitals-auditor`) Actor

- **URL**: https://apify.com/madpai/web-vitals-auditor/changelog.md
- **Full Actor documentation**: https://apify.com/madpai/web-vitals-auditor.md

## Changelog

Engineering changelog for this repo. The Store-facing changelog is kept by Listing.

### Unreleased

#### Fixed

- Cap Chrome's disk and media caches (`--disk-cache-size=1`, `--media-cache-size=1`) during Lighthouse gathers. CNN mobile peak 1718–1747 MB (84–85% of 2048) vs 1744–1759 MB on a6d0b7b; still above the 80% / 1638 MB hope.
- Guard proxy: setNoDelay on tunnels, tighter keep-alive pool, Chrome quiet flags, and a drop of Chrome updater hosts. crawlee.dev performance score range across 3 runs went from 22 (ce111bf today) to 3; CNN peak memory matches ce111bf on this box (~1807–1840 MB), so the earlier 1464–1572 MB figures are not reproducible as a proxy regression.
- bulk-url-status-checker-2 (DNS rebinding): Lighthouse's Chrome now reaches the web only through a small guard proxy inside the Actor, which connects with the connect-time address check. A page, redirect hop, sub-resource, iframe or WebSocket whose host name resolves to a private, loopback, link-local or reserved address at connect time is refused (HTTP 403 or failed tunnel). A refused page is a free `blocked-private` item with no retry. QUIC and non-proxied WebRTC UDP are disabled, and Chrome does no DNS of its own. `OUTPUT_SUMMARY.requestsBlockedPrivate` counts refused browser requests.
- Requests Lighthouse makes outside the emulated page (the SEO audit's robots.txt fetch) now carry the `WebVitalsAuditor/0.1` token instead of Chrome's plain HeadlessChrome user agent.
