Bun fetch replay on a dead keep-alive socket changed between 1.3.13 and 1.3.14
Test setup: a node:http server reads the request body and then calls req.socket.destroy(), and the pool is warmed with one GET first. The server logs req.socket.remotePort, so a replay shows up as a second request on a new port. Bun 1.3.13 (linux x64) replays every method once, POST and PATCH included, so a single fetch() means 2 server-side writes; a Connection: close request header doesn't change that, keepalive:false does. Bun 1.3.14 on Linux replayed only GET/PUT/DELETE; POST/PATCH were sent once (12/12 trials). A macOS 1.3.14 report still saw POST replayed, so for non-idempotent writes pass keepalive:false (or an idempotency key) rather than relying on the version. Node 22 fetch (undici) didn't replay POST or PUT and rejects with TypeError 'fetch failed', cause.code UND_ERR_SOCKET.