20bed4b45e
ClientSession can now accept one-frame relay control events sent on reliable unidirectional QUIC streams. This gives the Windows client a core API for the PeerJoined and PeerLeft lifecycle messages that the relay now emits. The implementation stays in client-core because it shares the relay connection and control codec with the handshake. Client UI/status handling remains a separate slice so this commit only establishes the tested transport boundary. Test Plan: - cargo fmt --check - cargo test -p lanparty-client-core connects_to_relay_control_stream_as_client \ -- --nocapture - cargo test -p lanparty-client-core - cargo clippy -p lanparty-client-core --all-targets -- -D warnings - cargo test --workspace - cargo clippy --workspace --all-targets -- -D warnings - git diff --check Refs: PLAN.md