Updates
<p>What changed in each PhlatPage release.</p>
Current state
Alpha. The latest release is v0.5.2.
The core framework is built and running: pages as JSON folders, a SQLite registry with a query DSL and full-text search, a per-page file store with image variants, and fieldtypes including the stack, blocks, repeater and collection containers. Git-backed drafts, publish and revisions are part of core. Locked records are enforced, and anything an addon ships is read-only to the CMS. Built-in addons cover the admin, the CLI, Clockwork debugging and a UI component set.
Tests cover the Toolkit classes and the core system: pages, routing, the registry, files, locking, page moves and addon mounts. The built-in addons have none yet.
Roadmap
- Stabilize the admin UI
- Add test coverage for the built-in addons
Each entry below covers one tagged release.
-
<p>The release tasks are renamed: phlat:tag tags and pushes, phlat:release publishes the Forgejo release.</p>
-
v0.9.2 19 Oct 2026<p>The cache and History's deploy key move out of data/storage into data/cache and data/git.</p>
-
v0.9.1 19 Oct 2026<p>composer.lock is tracked, and backup:create reports what it is doing.</p>
-
v0.9.0 19 Oct 2026<p>Collection items move out of per-item folders into one SQLite database per collection field, which is never in git.</p>
-
v0.8.1 19 Oct 2026<p>collection:export and Csv are removed, and Record::create() requires a guard.</p>
-
v0.8.0 19 Oct 2026<p>Blocks can opt into a server-side fragment cache, collections gain count, sum and prune, and a registry rebuild refuses other requests with a 503 instead of exposing a half-built index.</p>
-
v0.7.9 18 Oct 2026<p>Every record is created through Record::create(), so two creators of the same slug or uuid can't both win.</p>
-
v0.7.8 18 Oct 2026<p>Saves lock against concurrent writers, the admin uploads several files at once with a progress bar, and the edit panel remembers its tab.</p>
-
v0.7.7 17 Oct 2026<p>Outbound Http requests start at once and run concurrently, and their responses are read lazily.</p>
-
v0.7.6 17 Oct 2026<p>A file is public exactly when a template has asked for its URL, recorded in the registry instead of the file's index.json.</p>
-
v0.7.5 17 Oct 2026<p>The login URL comes from the mounted login page, and the PHP memory limit drops to 64M.</p>
-
v0.7.4 14 Oct 2026<p>env.json and env.cli.json move back to data/.</p>
-
v0.7.3 6 Oct 2026<p>Hidden belongs to Page, and a collection item has no published or hidden flag of its own.</p>
-
v0.7.2 6 Oct 2026<p>A page with no published key in its index.json is live.</p>
-
v0.7.1 6 Oct 2026<p>Admin saves are recorded in History automatically, and the Changes page becomes a History page with one Sync button.</p>
-
v0.7.0 5 Oct 2026<p>The registry search index is keyed by registry id, and a rebuild no longer takes quadratic time.</p>
-
v0.6.2 5 Oct 2026<p>URLs are limited to lowercase slugs and file names, error messages and URL fields are locked down, and registry queries escape LIKE wildcards.</p>
-
v0.6.1 3 Oct 2026<p>A field's context (path, uuid, page, view, url) is passed apart from the options its author wrote.</p>
-
v0.6.0 3 Oct 2026<p>Worker mode, SSE and the admin Templates screen are removed, the ui addon becomes a set of daisyUI components, Clockwork does nothing unless debug is on, and the session classes split into login and scoped values.</p>
-
v0.5.4 3 Oct 2026<p>A site's override of an addon view now gets the site's global controller data.</p>
-
v0.5.3 3 Oct 2026<p>Pages get a published flag and an access limit that visitors and queries both respect, and the admin gains a page Settings tab, a ⌘K search palette and page status lights.</p>
-
v0.5.2 1 Oct 2026<p>The page tree shows published, draft, uncommitted and locked state as four status dots.</p>
-
v0.5.1 1 Oct 2026<p>Locked records and addon-shipped pages are enforced, pages can be moved, the query engine is split out of the registry, and fields gain previews, a pages fieldtype and color palettes.</p>
-
v0.5.0 30 Sep 2026<p>Git history moves into core, addons are referenced by alias and mounted from config, and the global helper functions become template functions.</p>
-
v0.4.5 30 Sep 2026<p>The edit panel follows preview navigation, and a draft flag guards unsaved changes.</p>
-
v0.4.4 30 Sep 2026<p>The admin navigation is rebuilt around a page tree, a page picker and dual panels, and dead page routes are removed.</p>
-
v0.4.3 30 Sep 2026<p>The dev image moves to Alpine and compose pulls it prebuilt, and resolveField() keeps its underscore context keys again.</p>
-
v0.4.2 30 Sep 2026<p>The admin is reorganized: browse becomes edit, search is its own page, and a nav bar replaces the toolbar links.</p>
-
v0.4.1 30 Sep 2026<p>Fixed the image publish task failing when more than one tag points at HEAD.</p>
-
v0.3.5 29 Sep 2026<p>Pages autosave drafts with a draft/published preview toggle, the Changes page gets diffs and bulk actions, and password becomes a fieldtype.</p>