A measurement release: six cases where the engine misbehaved and its own instruments read normal. Each was a local mistake counted as a network verdict and fed back into a control loop.
Fixed
- A tracker whose hostname stops resolving is dropped for the session instead of announced to forever — hackney raises
:badargrather than returning:nxdomain, so the failure carried noretry_in - Announce failures now name the torrent and the announce URL, and classify hackney's wrapped connect timeout and HTTP 4xx/5xx
:add_peer_failedno longer counts as a peer being unreachable — it is a local supervisor fault raised after a successful handshake, and it was depressing the per-family dial throttle- The download speed readout no longer reports 0 B/s on a moving torrent:
downloadedonly advances per verified piece, so it is now averaged over a 60 s window - A packed
valuesstring in aget_peersresponse is no longer misread as an IPv6 peer (18 is a multiple of 6); per BEP 32 the transport family now decides - A disk error serving a BEP 52 hash request returns
{:error, term()}instead of raisingMatchErrormid-function
Changed
- HTTP stack behind tracker announces and BEP 19 web seeds: hackney 4.7.4, h2 0.12.0, webtransport 0.4.5, quic 1.8.2
Install via Hex: {:elixir_torrent, "~> 0.6.7"} · requires Elixir ~> 1.20 · changelog · docs · full diff