Skip to content

Extend C-328 to the full-response http family on the stock WASI 0.3 component - #133

Merged
O6lvl4 merged 1 commit into
mainfrom
c328-response-p3
Oct 12, 2026
Merged

O6lvl4 merged 1 commit into
mainfrom
c328-response-p3

Conversation

@O6lvl4

@O6lvl4 O6lvl4 commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

Refs almide/almide#1710 (ADR-0023 step 4)

ADR-0023 step 4 serves the six *_response functions in the p3 shim over wasi:http. This is the route the ADR chose; als#131 described a host-op route, which als#132 withdrew.

Changes

  • New clause in C-328: on native and the stock WASI 0.3 component, these read the same: the status, get_header, every value of a repeated field in order, the lowercased header set, the body, and a failure's text.
  • The NATIVE-ONLY sentence now holds for the embedded and stock-p1 lanes only. The embedded lane gets the family at ADR-0023 step 7.
  • The empty-body framing fix: the p3 shim sends content-length: 0 unless the method is GET or HEAD. Without it, the host framed an empty PATCH or DELETE as chunked 0\r\n\r\n where native sends no content.

Evidence

  • The implementation's tests/http_response_cross_test.rs runs every verb plus a plain empty PATCH against a loopback server. It requires identical stdout and exit codes from native and from wasmtime run -S http=y on the component.
  • That test will be cited in the implementation's ledger when it lands, not here, per the boundary rule.
  • Gates run locally: contracts, provenance, style, links, gate verification, the conformance self-test.

🤖 Generated with Claude Code

…omponent, and pin the empty-body request framing on p3

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant