Highlights
A large admin release for porting content plugins: new field types, tree reordering, singleton forms, and a registry for menu item types.
Added
signpost, a menu item type registry: plugins register typed menu item types at boot, and menus and sitemaps resolve items through the owning plugin.seaglass, an HTML sanitizer for stored rich text.richeditorfield, built on TipTap and sanitized throughseaglass.repeaterfield type.- Dependent dropdowns that refresh their options from other fields and recheck them on save.
- A tree reorder page and singleton admin controllers with a singleton form.
- Opt-in
http.access_logrequest logging insurf. - An opt-in
storage.uploads.serveroute for public uploads.
Fixed
- The access log never records the URL path, and logs a cancelled request's 5xx as 499 only when the client went away.
- The uploads route sandboxes files and serves non-images as downloads.
storage.uploads.public_path_prefixis validated at boot.- The token last-used throttle is scoped to its guard.