CPalius CMF 2.2.1
Released: 2026-09-23 · Channel: stable · Critical: no
2.2.0 shipped a new Studio rebuild page whose JavaScript lived only as an
AssetMapper hash. The release zip is a git snapshot; public/assets/ is
gitignored, so the hashed file never arrived and the buttons did nothing.
This patch compiles the importmap after every zip, patch and cp:update,
and serves the rebuild runner from /js/studio-rebuild.js.
What's new
Updates compile frontend assets. After files land, asset-map:compile
writes importmap hashes into public/assets/. WordPress ships built JS in
the package; this is the equivalent step on the live tree.
AACP asset rebuild dumps the importmap, not only Tailwind.
Rebuild buttons no longer depend on a compile. The runner is a static
file at /js/studio-rebuild.js, so a zip works before the dump finishes.
asset() is a Twig alias of cp_asset(). Unknown paths become
root-relative URLs. A missing Symfony Asset component no longer 500s the
page.
Upgrade notes
If 2.2.0 already 500s the rebuild page with Unknown function "asset",
this update replaces that call. Empty cp-core/var/cache/prod/ after
the files land (leave the folder).
If you deploy by FTP rather than through the panel, clear
cp-core/var/cache/prod/ after uploading — leave the folder, empty its
contents. Then open AACP → Rebuild assets once, or run
php cp-core/bin/console asset-map:compile.
Known limits
Shared hosts without a PHP CLI cannot run asset-map:compile in-process.
The rebuild page still works via /js/studio-rebuild.js. Other new
importmap entrypoints need a CLI compile or the next host that has one.