Release v0.3.7 - src/App.php broken down 9690→~7600 lines: ResponseMiddleware, CLI, CGI\Dispatcher, Middleware\Pipeline\*, LocationHeaderMiddleware, TemplateUnavailableException extracted (run() decomposed into registerOnRequest/WorkerStart/WorkerStop — zero logic change) - route() ergonomics: handler accepted as the last positional arg (no handler: keyword) - Per-route + App::when() path-scoped middleware, in-file $middleware for api files - Dev route hot-reload (--dev / ZEALPHP_DEV=1 / App::devReload) + CLI docs - phpinfo redesign: Apache-parity system/extension/environment sections + sticky TOC - Per-user log-dir fallback (resolve_log_dir) when /tmp/zealphp is root-owned - ext-zealphp pinned to v0.3.25 across setup.sh + Dockerfile - Fixes: #164 (RequestContext array superglobal __get), #157 (root-level api 404), #155 (registerCgiBackend exec_paths validation)