v0.0.15

20 June 2026

File storage simplified to page-UUID identity; image variants deferred; registry browser added to admin.

Added

  • PageFile and PageImage: the only path to publicly serving a file. PageImage adds image transforms (resize(), src(), srcset(), base64(), placeholder()).
  • Registry browser in the admin: browse all indexed pages with UUID, path, view, and status.
  • Addon public files routed through Page::file(), so addon assets follow the same file-serving path as page files.

Changed

  • File storage identity is now page UUID plus filename. StoredFile removed.
  • Image variant generation deferred to first request. Variants generate straight into the requested public path on first hit.
  • Image variant pipeline unified on Imagick.
  • Admin page editor split into its own page view and route (was colocated with pages).

Removed

  • Dead /files/ serving route. Files are reachable only via their page URL.

Fixed

  • Null basename crash in PageFile::url().
  • View override priority: site/ views now correctly beat phlat/ views in all cases.
  • Addon folder created before access (could fail on first load).