0.1.78 (2026-09-25)
Features
- deb: raise net.core.rmem_max/wmem_max to 4 MiB so the QUIC socket buffers can take effect (b6cc79c)
Bug Fixes
- dns: serve stale answers while refreshing, never wedge a host, and re-resolve after going offline (4bb14d4)
- read: bound every range-read wait and resume stalled read-ahead bodies (ec7a8c3)
- read: never serve a hole as EOF, keep windows with parked readers, and stop slow links and DNS from reading as offline (168279a)
- read: release idle and superseded windows' memory, keep the segment gate measuring, and stop panicked windows with EAGAIN (aca47f1)
- read: survive dead QUIC connections, slow servers and trickling bodies with bounded threads, memory and replies (cfaaef1)
- threads: restore the deep read queue and count every HTTP client runtime in the thread budget (5adfbfb)
- transfers: key TRANSFERS entries per stream so concurrent reads of one file stop clobbering each other (edf45b4)
Performance Improvements
- http3: build the HTTP/2 read clients only when a demotion needs them (e921ecc)
- http3: keep warm QUIC read connections for just under their idle timeout instead of 1 s (616c2be)
- http3: raise the QUIC UDP sockets' receive and send buffers to 4 MiB (1012f95)
- read: fetch a sequential reader's next window while it is halfway through the current one (1a43891)
- read: fetch large read-ahead windows as concurrent segments on spare download slots (800e15e)
- read: give each download slot its own read client so parallel downloads use separate QUIC connections (1684da4)
- read: grant the 8 MB window only after a straight read through the first one, not on a first read at offset 0 (dc4ca00)
- read: open straight reads of large files with an 8 MB read-ahead window (6036055)