0.8.2

Patch release for correct HEAD responses, drain-aware health checks, built-in endpoint parity, reliable threaded reloads, and high-value CLI flags

Highlights

  • Correct HEAD responses and access logs — HTTP/1.1, HTTP/2, HTTP/3, and sync bridges now preserve response headers while dropping app body bytes for HEAD requests. Access-log timestamps are real UTC values, and expected long-lived SSE/chunked responses are no longer marked slow solely because of their duration.
  • Drain-aware readiness — the built-in health endpoint returns HTTP 503 with{"status":"draining"}while a worker drains, so load balancers can stop routing new traffic during deploys.
  • Built-in endpoint parity — health, introspection, and configured compression-dictionary endpoints now share dispatch behavior across HTTP/1.1, HTTP/2, and HTTP/3; HTTP/3 health responses also report the real worker ID.
  • Reliable threaded reloads — thread workers receive duplicated listener handles, preventing the next generation from seeingEBADF when old workers close independently bound SO_REUSEPORTlisteners.
  • More useful CLI controlsserve and check now expose --debug, --trusted-hosts, and --metrics, while branded help and the README point to the TOML configuration template for less common settings.

Added

  • serve and check accept --debug, --trusted-hosts, and --metrics. Use pounce config schema --output-format toml-templateto discover configuration available through TOML. (#158)

Fixed

  • HEAD responses now send zero body octets across HTTP/1.1, HTTP/2, HTTP/3, and sync bridges without losing the app-provided representation headers. Logging now converts monotonic lifecycle timestamps to wall-clock UTC, and long-lived SSE/chunked responses are excluded from the duration-only slow-request heuristic. (#217, #218, #219)
  • The built-in health endpoint returns HTTP 503 with{"status":"draining"}during worker drain across async HTTP/1.1, sync, HTTP/2, and HTTP/3 paths. (#107)
  • Health, introspection, and configured compression-dictionary endpoints now use shared dispatch behavior across HTTP/1.1, HTTP/2, and HTTP/3, including real worker IDs in HTTP/3 health responses. (#161)
  • Thread-worker graceful reload duplicates listener handles before handing them to workers, preventingEBADF in the new generation when old workers close independently bound SO_REUSEPORTsockets. (#222)

Performance

No new benchmark artifact accompanies 0.8.2. These changes fix correctness and operator-control paths rather than introduce performance work; normal application requests do not resolve the live state used by built-in endpoints. This release makes no numeric performance claim.

Install

uv add "bengal-pounce==0.8.2"