Releases
0.6.0
Compare
Sorry, something went wrong.
No results found
Added
BEP 14 (LSD): Local Service Discovery via UDP multicast (BT-SEARCH)
BEP 19 (WebSeed): HTTP Range seeding from url-list via Torrent.WebSeed
BEP 48: periodic tracker scrape; skip confirmed dead-swarm announce URLs
BEP 52 (phases 1–2/6): detect v1/hybrid/v2, parse peers' v2 handshake capability; accept hybrid torrents/magnets; reject pure-v2 cleanly
Lazy piece storage: on-demand piece read/write/verify workers with idle terminate
Peer.ConnectionManager: outbound dial orchestration with per-family throttle
Mid-download session checkpoint (bitfield + counters every 30s)
Magnet x.pe peers kept as live dial candidates after metadata fetch
Developer quality gate: warnings-as-errors compile, Dialyzer, and all enabled Credo checks at every priority via mix quality
Changed
Magnet.Connection sources its BEP 3 choke/unchoke/interested wire ids from Peer.Const instead of a local copy
CI publish workflow renamed to build-and-publish, gated to run mix hex.publish on semver tag pushes
Fixed
NAT-PMP and UPnP passive UDP receive handling now decodes the datagram payload instead of the source-address tuple
Global 2 MiB recv-buffer ceiling now bounds every wire frame's declared length, not only the six previously-capped ids
Per-connection stall watchdog disconnects peers that trickle a declared frame length in forever instead of completing it
Declared bitfield/piece frame lengths capped ahead of buffering, closing a memory-amplification gap alongside the existing LTEP/BEP 52 caps
Tracker started is now resent on the first announce of every session (e.g. after a cold restart), not only once per info hash ever
You can’t perform that action at this time.