Release v0.2.23 - Added: App::processIsolation(?bool), App::enableCoroutine(?bool), App::hookAll(bool|int|null) — fluent setters that decouple the four lifecycle decisions previously bundled inside App::superglobals(). Each defaults to null → resolves to "follow $superglobals" at run() time, so existing apps see no behaviour change. - Enables the "Mixed-mode / Symfony" lifecycle (superglobals=true + processIsolation=false + sessionLifecycle=false): real $_SESSION without the ~30-50 ms CGI fork cost on every App::include() call. - Added: lifecycle mode matrix in CLAUDE.md documenting the six supported combinations and the two unsafe-but-warned combinations. - Changed: App::run() resolves lifecycle decisions through the new setters; emits [lifecycle] warnings to the debug log for combinations that race process-wide $_GET/$_POST/$_SESSION across coroutines. - Changed: internal OpenSwoole\Runtime::enableCoroutine() call switched to canonical two-arg form (PHPStan level 10 cleanliness). PHPStan level 10 clean. 321 unit + 146 integration tests pass.