## What it builds Persistent connections: multiple HTTP requests reuse one TCP connection. Worker inspects response `Connection` header after `handle()`: - `Connection: keep-alive` → return to `read()` waiting for next request - `Connection: close` → close immediately (current behavior) **New config:** - `ListenerBuilder::keepAlive(bool)` — default true for HTTP/1.1 - `ListenerBuilder::keepAliveTimeout(int)` — idle seconds before close (default 60) - `WorkerConfig::keepAliveMaxRequests` — max requests per connection (default 100) ## References - Follow-up MVP+1 #1 - Watpliwosci: #21a (read timeout), #21c (keep-alive paradox) - Milestone doc: `docs/superpowers/milestone-5/01-http-keepalive.md`
What it builds
Persistent connections: multiple HTTP requests reuse one TCP connection.
Worker inspects response
Connectionheader afterhandle():Connection: keep-alive→ return toread()waiting for next requestConnection: close→ close immediately (current behavior)New config:
ListenerBuilder::keepAlive(bool)— default true for HTTP/1.1ListenerBuilder::keepAliveTimeout(int)— idle seconds before close (default 60)WorkerConfig::keepAliveMaxRequests— max requests per connection (default 100)References
docs/superpowers/milestone-5/01-http-keepalive.md