911c66f447
aioquic multiplexing diagnosis: runner asked for 1999 files, aioquic processed 1371 GET requests, our endpoint wrote ONLY 1 file to /downloads. The connection stayed healthy throughout (qlog shows STREAM frames flowing both ways at t=58s). Server response volume indicates each request got a 200 response. The bug: our QpackDecoder is literal-only (no dynamic table). When aioquic primes its dynamic table after a few requests and switches to dynamic-table references in subsequent response HEADERS, our decoder silently mis-parses — status comes back 0, file not written. Empty-SETTINGS gives aioquic the spec default (also 0) but it apparently doesn't strictly enforce: it still emits dynamic-refs anyway. Fix: explicitly advertise QPACK_MAX_TABLE_CAPACITY=0 + QPACK_BLOCKED_STREAMS=0 in our SETTINGS. Forces aioquic onto the literal-only QPACK path that our decoder handles correctly. A proper fix would be to implement QPACK dynamic-table support in our decoder + read the server's encoder stream; that's its own project. For now this gets multiplexing past the QPACK barrier so we can see whether anything else is broken downstream. https://claude.ai/code/session_01HcvfQq1ttPV9PkRoJb4nyT