e625602a67
Keep the real httpx 0.28 wrapper-shape test (proves the shutdown reaches the socket through BoundSyncStream/ResponseStream/PoolByteStream) and the loopback E2E (a parked reader unwinds within its stale budget and the retry lands). The other four were narrower restatements of the same paths. Also treat httpx.ReadError as a transport error in codex_runtime: it is the same abort-induced-read class the streaming retry loop now recovers from.