JS-076 MED: wire.fetch leaks the child stdin fd (wfd) on every error path

wire.fetch spawns upload-pack, holding wfd=child.stdin / rfd=child.stdout / pid (wire.js:136-137). wfd is closed only at wire.js:170, INSIDE the try after the request is written; the finally (wire.js:188-191) closes rfd and reaps pid but NEVER wfd. Any throw before :170 — peer advertised no usable ref (:160), a pkt parse error draining the advert, a mid-loop io.writeAll failure — leaks wfd, and reaping with the child's stdin still open can block the peer. WIRECLI.c closes both fds before reaping. Method: Issues.

Input

Context

Goals

Constraints

WIP

Design decisions

TODOs

Blockers and bummers

Outcome