First minor release. Highlights:
Fixed
- Race: late
NEIGHBOR_REPLYre-adding a dead peer to the active view (#1). State now keeps a smallrecently_lostdeny-list of peer ids evicted viaconnection_lost/2; the reply handler rejects only replies whose sender is in that set, everything else is accepted as before. Found and reproduced by Lockstep.
Changed (breaking)
HyParView.Transportcallback signature:listen/2now takes a 1-arityevent_callbackinstead of a 2-aritydelivercallback. Events are{:message, peer, msg}and{:peer_lost, peer}.
Added
HyParView.Transport.TCPauto-signals{:peer_lost, peer}on TCP close — reactive recovery fires without applications needing to callconnection_lost/2themselves.TCP_NODELAYenabled on every Transport socket — short protocol messages no longer wait up to 40ms for Nagle. Found via thehyparview_pubsub_benchcompanion project.HyParView.subscribe/3:replayoption for late subscribers.HyParView.Telemetry.Metrics— pre-builtTelemetry.Metricsdefinitions; drop into Prometheus / StatsD / any reporter. Optional dep on:telemetry_metrics ~> 1.0.
Tested
HyParView.PartitionTest— partition + heal property tests.HyParView.ConnectionTest— Connection error-path coverage.HyParView.ConnectionLostRaceTest— H1 regression test.- Coverage bumped to 89% (test-support modules excluded from the average).
See CHANGELOG.md for full notes and the upgrade impact of the breaking Transport change.