a24341c361
The relay now sends a reliable PeerLeft control event to remaining room peers after removing the departed peer from session and room state. Normal connection closure is reported as Normal, while malformed-datagram disconnects are reported as ProtocolError. This completes the first relay-side lifecycle event pair. Delivery remains best-effort and client-side event consumption is intentionally left for a separate slice. Test Plan: - cargo fmt --check - cargo test -p lanparty-relay forwards_ethernet_datagrams_between_joined_peers \ -- --nocapture - cargo test -p lanparty-relay - cargo clippy -p lanparty-relay --all-targets -- -D warnings - cargo test --workspace - cargo clippy --workspace --all-targets -- -D warnings - git diff --check Refs: PLAN.md