Coverage gap
When a response carries the same header field name on multiple lines, a cache storing/forwarding it must combine the values into one comma-separated field, preserving order (RFC 9110 §5.3 / RFC 9111 §3.2). Only the request-side combining (of a Vary-selecting header) is tested; the response-side store-and-combine is not.
Currently tested
vary-normalise-combine (tests/vary.mjs) tests combining on the request (selecting-header) side. The server can emit duplicate response headers (test-engine/server/handle-test.mjs array-joins them) but no test asserts on the combined stored/served output.
Suggested test
Origin returns a response with two lines of the same field (e.g. X-Test-Header: a then X-Test-Header: b). Assert the cache stores/serves the combined value a, b (in order).
Tag
[MUST] — RFC 9110 §5.3
Filed from an AI-assisted (Claude Code) coverage audit against RFC 9111/9110, under maintainer direction. Absence was grep-verified; the spec section number and MUST/SHOULD/optimal strength are from model knowledge, not re-read from the RFC text — worth confirming before writing the test.
Coverage gap
When a response carries the same header field name on multiple lines, a cache storing/forwarding it must combine the values into one comma-separated field, preserving order (RFC 9110 §5.3 / RFC 9111 §3.2). Only the request-side combining (of a Vary-selecting header) is tested; the response-side store-and-combine is not.
Currently tested
vary-normalise-combine(tests/vary.mjs) tests combining on the request (selecting-header) side. The server can emit duplicate response headers (test-engine/server/handle-test.mjsarray-joins them) but no test asserts on the combined stored/served output.Suggested test
Origin returns a response with two lines of the same field (e.g.
X-Test-Header: athenX-Test-Header: b). Assert the cache stores/serves the combined valuea, b(in order).Tag
[MUST] — RFC 9110 §5.3
Filed from an AI-assisted (Claude Code) coverage audit against RFC 9111/9110, under maintainer direction. Absence was grep-verified; the spec section number and MUST/SHOULD/optimal strength are from model knowledge, not re-read from the RFC text — worth confirming before writing the test.