Network framing calibration
- NW1: abc is 00 00 00 03 followed by 61 62 63. A zero-length frame emits an empty byte string. Chunking must not change the ordered payload sequence.
- NW2: feed(b'') is not EOF. For one frame, EOF is clean before input or after completion; all internal cuts truncate. A completed message before a bad header remains in the returned messages list beside the terminal error.
- NW3: 1024 is allowed, 1025 is rejected after four header bytes. The bound covers retained parser byte content, not every Python allocation or application queue. Running the reference alone earns no implementation credit.
- NW4: little-endian header decoding misreads valid lengths, returning only the first coalesced frame loses work, and refreshing the timer on progress defeats the fixed frame budget. Require an exact failing input/time sequence and corrected output.
- NW5: arrange poll at the deadline; call finish on socket EOF; stop on terminal protocol failure and release connection state. Frame limits do not replace bounded queues, idle deadlines, connection limits or TLS. Initial idle timeout is outside this decoder.
- NW6: completion at tick 9 succeeds for a frame begun at 0 with timeout 10; completing at 10 fails. A client timeout cannot distinguish no commit from commit with a lost response. A retry needs application-level semantics beyond TCP reliability.
For score 3, require a fresh case and a precise limitation. Preserve original failed reasoning and disclose help rather than copying a passing output.