Corpus position 4210/4708: js/web/websocket/websocket-permessage-deflate-edge-cases.test.ts.
Complete permessage-deflate negotiation and receive semantics across Bun.serve, Bun-listener, and raw node:net topologies. Server-to-client messages queued from open() must publish as tasks so listeners installed after awaiting open cannot miss them. Raw 101 handling must preserve pipelined frame bytes, validate the accept key, accept both node:net server registration styles, assemble continuation frames, enforce RSV/opcode rules, decode text/binary payloads, and cap inflated output at 128 MiB.
Oversized messages must emit a real structured ErrorEvent (ERR_WEBSOCKET_MESSAGE_TOO_BIG, receive/decompress phase, cause, byte counts/limit, source-aware stack) and close with 1009 / Message too big, never degrade to 1006. Add permanent exact-file and diagnostic-contract regressions. Acceptance: unchanged upstream file 5/5, zero failed/todo/unsupported/allowed-empty.