v0.15.0
24 October 2026
Editor views for assets, favicon and fonts, a theme picker, and sessions that no longer block parallel requests.
Added
- Editor views for assets, favicon and fonts, at
/assets,/faviconand/fonts. They need theadmin.accesspermission. The pages themselves stay public, so their files keep serving. - The admin tree follows the preview as it browses, and rows carry inline page actions.
theme-pickerUI component: liststhemeswith a swatch of each, posts the choice toactionand switchesthemein place, fading overdurationmilliseconds (600 by default).code.themeconfig key sets the highlight theme forcodefields. It defaults toone-dark-pro.Res::xml($body, $code = 200)sends an XML response.- A view can name itself in the new-page View picker with a
labelin its_index.json. It falls back to the view ref.
Changed
- Signed-out visitors hold the
guestrole, so$app->session->can()andrequirePermission()resolve against it. The built-inguestrole no longer grantspages.view. A site that wants to grant a permission to guests adds aguestrole undersite/roles/. - Highlighted code is cached by its content. Phiki costs about 150 ms a file, and a content write no longer flushes the cache.
- Sessions are read once and released at once. Each write takes the session lock only for as long as it changes the file, so a slow request no longer blocks the visitor's other requests.
Ses::isActive()now means the session is open for writing. UseSes::isStarted()to ask whether the request has read it.$_SESSIONis a snapshot, so a direct write to it is never saved. See Upgrading. - A session write happens at most once a minute to record activity.
prefsposts from htmx get an empty204instead of a redirect.
Fixed
- The first view in the new-page View picker is preselected.
Comments
No comments yet. Be the first!
Loading form…