Bug fixes (14 issues closed):
- #133/#135: Pool worker READY handshake — loop-read stderr, skip warnings
- #134: Use CoSessionManager when coroutines enabled (SessionManager races)
- #136: Duplicate PHPSESSID — _session_started flag + static save handler guard
- #137: Reject sg(false)+ec(false) at boot (CoSessionManager needs scheduler)
- #143: ZEALPHP_CGI_MODE=pool no longer parsed as proc
- #142: python3 CGI backend conditional (skip when not installed)
- #141: uopz skip guards for ext-zealphp-only environments
- #140: CI builds ext-zealphp from pinned submodule
- #138: Isolation scope documented (superglobals only, not $GLOBALS)
- #132: Copy button works on all pages (moved to global JS)
- #130: exec_paths docblock added to registerCgiBackend()
- #139: Mode 6 co-state fixture — closed as expected behavior
- Reverted premature auto-enable coroutines for sg(true)
- Removed auto-wired zealphp_define_hook/constants_clear
ext-zealphp v0.3.1:
- define() isolation, $GLOBALS isolation, process-state snapshot/clean
- Zombie class fix for static property cleanup