ReviewOS

home-lang/home

Activate complete HTTP/3 fetch client and adversarial corpora

#181
Closed chris opened this 9 days ago ·
9 days ago

Umbrella: #66

Port and activate the byte-identical Bun HTTP/3 fetch-client corpus without narrowing or rewriting the upstream tests:

  • js/web/fetch/fetch-http3-client.test.ts (797 lines, SHA-256 94f0f006f1cc6d86d311daeb384c1104f359869fec07a72ba4232e4670c067c0)
  • js/web/fetch/fetch-http3-adversarial.test.ts (275 lines, SHA-256 6e25420f41d83a74ea49ed09549fa59891a9b2bf80e566c4b04a60b9af07e56e)

Current exact Home baselines:

  • client: 0 passed / 1 failed; direct Bun.serve({ http3:true, http1:false }) still accepts an unhinted TCP fetch
  • adversarial: 0 passed / 1 failed; an H3 response containing forbidden te is delivered instead of rejecting the response

Required parity includes forced protocol: "http3" and "h3", UDP-only enforcement, TLS trust-option rejection, QPACK/header rules, large and compressed bodies, pull/direct/full-duplex streams, abort/reset/drop behavior, multiplexing and reuse, stale-session retry, GOAWAY retirement, Alt-Svc opt-in upgrade/session accounting, and adversarial bodies through 4 MiB with 8-way concurrency.

Completion requires both untouched files at their full registered counts with zero failures, TODOs, or unsupported tests, durable regression coverage, adjacent protocol/leak checks, and the full home_test gate.

9 days ago

Completed on main in 1657c71.

Verification:

  • Source fidelity: Home and ~/Code/bun copies remain byte-identical.
    • fetch-http3-client.test.ts: SHA-256 94f0f006f1cc6d86d311daeb384c1104f359869fec07a72ba4232e4670c067c0
    • fetch-http3-adversarial.test.ts: SHA-256 6e25420f41d83a74ea49ed09549fa59891a9b2bf80e566c4b04a60b9af07e56e
  • Exact untouched client corpus: 52 passed, 0 failed, 0 TODO, 0 unsupported.
  • Exact untouched adversarial corpus: 27 passed, 0 failed, 0 TODO, 0 unsupported.
  • Combined activation: 79/79 across forced http3/h3, UDP-only enforcement, TLS trust constraints, QPACK/header validation, large and compressed bodies, pull/direct/full-duplex streams, abort/reset/drop behavior, multiplexing/reuse, stale-session retry, GOAWAY retirement, Alt-Svc feature gating, bodies through 4 MiB, and 8-way concurrent uploads.
  • Shared runtime improvements include listener capability tagging, requested-port reuse, replacement-safe teardown, H3 session accounting, fail-closed connection-header validation, standard Response.json() content type, reversible compact gzip request framing, HEAD body suppression, and request retry onto a fresh reused-port session.
  • Durable combined exact-corpus Zig gate passes.
  • Adjacent HTTP/stream matrix: 336 active passes, 0 failures, 0 unsupported, plus 2 explicit upstream TODOs in bun-serve-file. The separate pre-existing Home whole-file TODO in direct-readable-stream.test.tsx was deliberately excluded from that evidence.
  • Original body-leak stress: 7/7, leak 0 in all scenarios, stable RSS start/peak/end at 67,108,864 bytes, retaining all 140,000 POST cycles.
  • Complete home_test gate: 1,139 passed, 1 skipped, 0 failed (1,140 total); exit 0 in 1,309.83s.

Sign in to comment on this issue.