Changelog for Monster Full Page Cache (MonsterFPC)
by Yanni Snamiguel 
Documentation: https://modxmonster.com/
===================================================

MonsterFPC 1.0.1-pl
--------------------
*Initial release of the modernized fork based on xFPC.*

[Added]
- Native Gzip compression (Level 9): Drastically reduces the disk space required for the cache by 80% to 90%, while improving network transfer speeds.
- HTML Minification: Automatically removes unnecessary whitespace, tabs, and line breaks before compressing the cached file.
- URL Normalization: Ignores query strings (like ?fbclid= or ?utm_source=) when generating cache hashes to prevent massive cache duplication for the same page.
- Modern Fetch API in the Hole Punching Snippet: Replaced the outdated XMLHttpRequest/ActiveXObject with modern, non-blocking asynchronous JavaScript.
- Network Timeout Protection: Added a strict 2-second timeout context for dynamic resource fetching in the snippet to prevent server deadlocks.

[Changed]
- Fully refactored and optimized for PHP 8.2+ compatibility.
- Replaced slow directory iteration (opendir/readdir) with native glob() for faster cache clearing operations.
- Replaced deprecated JavaScript `unescape()` function with `decodeURIComponent()` for CSS injection.
- Updated project name, branding, and docblocks to "Monster Full Page Cache" while respecting the original GPL license and author credits.

[Fixed]
- Fixed PHP 8.2 warnings related to uninitialized variables.
- Fixed fatal "headers already sent" errors during MODX late execution by implementing strict `headers_sent()` validations across all header outputs.

===================================================
Legacy Changelog (xFPC by SCHERP Ontwikkeling)
===================================================