14 changes:
- Late writes into compressed chunks no longer have to be lost
print replaces the pdf document type, which had not worked for years
- MariaDB stops pretending to be MySQL
- The toolbar now sees what a page does after it renders, and can be opened on a live server
- Nine queries per request, most of them avoidable
- The SPA debug panel now says it exists
- The docs now say when you would need them
- The toolbar's hide button now hides the toolbar
spa:dev / spa:build, and a service container that actually exists
- One toolbar, delivered two ways — and the SPA panel gains every tab
- A name for every request, and the log lines it wrote
- The server-rendered toolbar now uses the one renderer too
- Settings read every key one at a time on PostgreSQL, and said nothing
- SSE events published during a reconnect are no longer lost
6 changes:
- Five rolled-up views were frozen on every database without TimescaleDB
- A model may give
load() whatever parameters it needs
- Five developer panels had been empty for years, and nothing said why
- The rate limiter counted the proxy, and counted it badly
- A human check that prices spam instead of pretending to detect it
getInstance() is a factory, and two call sites forgot
16 changes:
pramnos init checks both Docker ports before proposing one
init scaffolds a working SPA — Svelte + daisyUI, Vite, Vitest and Docker
- Files the container writes now belong to you, not to root
- SPA follow-ups: the dev server, the site root, and the docs generator
- The FK migration stops assuming the schema of tables it does not own
- The scaffolded SPA now actually talks to the API
create:crud builds the SPA half too
- A debug bar a SPA can actually use — and a guide for testing the front end
- Generated CRUD gets real authorisation — and
delete gets any at all
- A SPA project gets an administration screen
cache:clear no longer wipes every installation sharing the backend
- Signing in works, screens have URLs, and the SPA wears the project's colours
Permissions answers from whichever store the installation has
- One permission system, available to every project with users
timescale:ensure — repairing hypertables on a database that got TimescaleDB late
- The GDPR endpoints queried a table that does not exist