v0.0.30
26 June 2026
Universal index.json/data.json split moved onto Record, admin breadcrumbs redesigned, alias-only template refs.
Added
Record::structuralKeys(): each subtype declares whichsave()keys are structural (go toindex.json) vs content (data.json).Pageaddsview/hidden/status/locked;Useradds nothing extra.Record::save(),saveIndex()and thecreated/updated/lockedproperties moved up fromPagesoUsergets the same behavior for free.- Admin breadcrumbs rebuilt as their own component (
ui/breadcrumbs.latte+ amenu/sub-view with pagination) instead of inline markup in the nav.
Changed
AddonMounts::resolveTemplateRef()/aliasOf()/aliasFromPath(): template refs (@admin/...) now resolve strictly through an addon's alias, never its canonical id;ViewLoaderwas rewritten against these instead of a rawaddonPrefixesarray, and site overrides now live atviews/@{alias}/...instead ofviews/addons/{name}/....Page::url()no longer returns a trailing slash.- Removed
phlat/views/login(the old non-aliased login view) : admin's ownloginview covers it.
Fixed
- Admin breadcrumbs showing the wrong trail/links fixed by the rebuild above.