v0.32.0

Latest release

1 November 2026

Sites and addons can emit their own events, and palette extraction averages colors less.

Added

  • Page::emit($event, ...$args) fires {view}/{event}, the page's view as the prefix, so a site page cannot spell a core event.
  • AddonPage::emit() fires @alias/event.
  • App::addon($alias) returns an Addon handle for code with no page, such as an addon's index.php. Addon::emit() fires @alias/event. It throws InvalidArgumentException when the addon is not enabled.

Changed

  • An addon's session scope is @alias instead of alias, so it can no longer share a scope with a site view of the same name. Values stored under the old scope are not carried over.
  • PageImage::palette() quantizes to twice the requested count and returns the most common colors, which averages less.