Skip to content
This repository was archived by the owner on Aug 23, 2026. It is now read-only.

Bump livery 0.4.4 + h1 0.7.0; un-skip 3 body-drain smoke tests - #66

Merged
benoitc merged 8 commits into
mainfrom
feat/livery-0.4
Jun 20, 2026
Merged

benoitc merged 8 commits into
mainfrom
feat/livery-0.4

Conversation

@benoitc

@benoitc benoitc commented Jun 18, 2026

Copy link
Copy Markdown
Member

Summary

  • Bump livery 0.3.0 -> 0.4.4 (early-response inbound drain on HTTP/1.1).
  • Pulls in h1 0.7.0, h2 0.10.2, hackney 4.4.5, barrel_mcp 2.2.4.
  • Un-skip accepts_body_above_cowboy_default_length, messages_413_returns_request_too_large_type, responses_413_returns_request_too_large_type. The clients now read the 4xx/413 instead of socket_closed_remotely.

Notes

  • No handler change required: livery 0.4 enables drain automatically on {full, _, _, _} responses where the inbound body is not at end_stream. Defaults match what the cap test expects (12 MiB body cap vs. 13 MiB POST).
  • Companion upstream prompts saved under docs/ for reference.

benoitc added 8 commits June 19, 2026 01:29
livery 0.4 adds early-response inbound drain on HTTP/1.1: a handler
that commits a response before the body is fully read now drains the
leftover inbound before closing, so the client reads the response
instead of a connection reset. Un-skips:

  accepts_body_above_cowboy_default_length
  messages_413_returns_request_too_large_type
  responses_413_returns_request_too_large_type

Resolves: livery 0.3.0 -> 0.4.4, h1 0.6.2 -> 0.7.0, h2 0.10.1 -> 0.10.2,
hackney 4.4.0 -> 4.4.5, barrel_mcp 2.2.3 -> 2.2.4.
Wires max_request_body_bytes into the livery HttpOpts so over-cap
uploads trip livery's listener-level abort_body, which keeps the h1
stream alive for early-response drain. Without this, the cap was only
enforced via livery_body:read_all/3 Max in the handler, bypassing the
adapter's drain handshake and letting the client see {error, closed}
before reading the 413.
livery_service's listener_opts type spec doesn't expose `max_body'
yet (livery_h1's listen_opts does, and maps:merge forwards it), so
dialyzer flags livery:start_service/1 as no-return.
livery 0.4.x does not propagate `max_body_size' down to h1's
parser, which keeps its 8 MiB default and trips `client_reset'
on bodies > 8 MiB before livery's listener cap + early-response
drain can engage. Re-skip with a clear upstream pointer; ship
the dep bump (livery 0.4.4, h1 0.7.0, h2 0.10.2, hackney 4.4.5,
barrel_mcp 2.2.4, instrument 1.1.4) without the 3 unskips.

See docs/livery_forward_max_body_size_prompt.md.
@benoitc
benoitc merged commit 0837653 into main Jun 20, 2026
18 checks passed
@benoitc
benoitc deleted the feat/livery-0.4 branch June 20, 2026 09:08
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant