Skip to content

Gaoxy v0.12.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 07:43
· 7 commits to main since this release

Gaoxy 0.12.0

Native H1/H2 storage handlers can explicitly select
http_limits: %{request_timeout: :infinity}. Upload body reads and ordinary
Plug.Conn.send_file responses then outlive the total request deadline while
retaining finite header, read and write limits, bounded transfer windows,
admission budgets, cancellation and shutdown. The default request timeout
remains 30 seconds. This resolves the storage-transfer policy requested in
#13.

This opt-in supports ordinary native/Plug targets, including Endpoint-owned
Phoenix and ListenerSet, on H1/H2. H3 and Generation targets, including managed
gateway targets, reject it with :unsupported_request_timeout, whether direct
or wrapped. Trusted application code without I/O can run
indefinitely under the opt-in and must enforce its own execution/idle policy.
stream_timeout retains its response-only role; :request means the configured
request lifetime, which is infinite when explicitly selected on a supported
listener. See the request lifetime guide.

Two compatibility fixes accompany the new option:

  • HEAD preserves validated application Content-Length metadata while omitting
    the body. Without a supplied length it infers the representation length from
    the body. Existing 204/205/304 rules, malformed/duplicate length rejection and
    GET framing remain unchanged
    (#12).
  • Phoenix's exact {:shutdown, :disconnected} WebSock stop reason closes with
    1000 and normal termination. Restart remains 1012, arbitrary stop errors
    remain 1011, and explicit close codes remain authoritative
    (#14).

All six Hex distributions and the standalone application advance together to
0.12.0. Use the Gaoxy WebSockAdapter distribution under Phoenix's existing
:websock_adapter dependency key with hex: :gaoxy_websock_adapter and
override: true. Dependency pins and vendor provenance remain unchanged.
This release adds no deployment or specialist pressure/load qualification.