v0.3.5
<p>Pages autosave drafts with a draft/published preview toggle, the Changes page gets diffs and bulk actions, and password becomes a fieldtype.</p>
29 September 2026
Added
- Draft autosave.
Page::autosave()writesdata.autosave.jsonwithout touchingindex.json, the registry or git.Page::discardAutosave()clears it, and a real save does the same.Page::data()returns the draft to a signed-in session. - A draft/published toggle for the admin preview (
preview-mode/{path}, stored as thepreview-publishedsession flag) and a discard route (autosave/discard/{path}) on the admin edit router. - The Changes page shows a diff per pending page (
changes/diff,PageHistory::diffPending()) and haspublish-allanddiscard-all. Publish and discard are grouped, and publish is disabled when there is no draft. - A
passwordfieldtype. It stores a hash, always decodes blank, and treats a blank submission as "keep the current one".fields/passwordis its global definition. App::roleNames()andphlat user:role <username> <role>.stackandblocksfields index their nested field content for search.- Upload errors (a disallowed type, a failed upload) show in the files tab instead of throwing.
Changed
phlat/roles/index.jsondeclares onlypassword. The profile field definitions stay available, and a site opts into them.User::fields()skipspassword, which has its own form.- The admin
registryandsystemviews requiresystem.managethrough abefore()hook, and the users view requiresusers.manageon GET. - The branches section and the deploy key on the Changes page require
git.manage. The deploy key is behind a disclosure. compose.yamlruns the app container as uid/gid 1000.
Comments
No comments yet. Be the first!
Loading form…