v0.0.32
28 June 2026
Worker mode support, App boots once per worker instead of once per request.
Added
App::boot(): wires core hooks and loads addons exactly once even when many requests share a worker process;execute()now resets$request/$page/shutdownEmittedper request instead of re-running addon loading.phlat/Caddyfile.classic: the old non-worker Caddy config, split out now thatCaddyfile/Caddyfile.workerboth default to FrankenPHP worker mode (worker /app/site/public/worker.php).- Login controller surfaces a flash message (
$app->session->namespace('phlat')->pop('flash')).
Changed
App::$requestis no longerreadonly: it's replaced on eachexecute()call so a long-lived worker process gets a fresh request/page per call.Caddyfile/Caddyfile.workerdropped the missing-static 404 responder (moved toCaddyfile.classic) and bind:80directly instead oflocalhost.