Nice-to-have / possible improvement — not on the v1 critical path.
The batch concurrency ceiling (≤ k open on the wire) is proven under Node/Vitest via the mock server's maxOpen probe. But the real-browser per-origin socket cap (~6 on HTTP/1.1) and its removal under HTTP/2 can only be simulated under Node (an app-level counter), never genuinely observed. v1 deliberately relies on the Node simulation (rig decision D6).
Suggestion
A one-off, opt-in Playwright smoke that drives downloadAll against a real server in a real browser and confirms throttle.concurrency (the batch's own limiter) is the binding constraint, not the browser's per-origin queue. Belt-and-braces only — the correctness proof already lives in the Node suite.
Rig spec P19 / P20, open decision D6. Follow-up to #451.
The batch concurrency ceiling (
≤ kopen on the wire) is proven under Node/Vitest via the mock server'smaxOpenprobe. But the real-browser per-origin socket cap (~6 on HTTP/1.1) and its removal under HTTP/2 can only be simulated under Node (an app-level counter), never genuinely observed. v1 deliberately relies on the Node simulation (rig decision D6).Suggestion
A one-off, opt-in Playwright smoke that drives
downloadAllagainst a real server in a real browser and confirmsthrottle.concurrency(the batch's own limiter) is the binding constraint, not the browser's per-origin queue. Belt-and-braces only — the correctness proof already lives in the Node suite.Rig spec P19 / P20, open decision D6. Follow-up to #451.