5d88d57223
Compose Session from SessionSender (writer + outbound AEAD/seq) and SessionReceiver (reader + inbound AEAD + replay window); split() hands back the two halves so a VPN data path can run concurrent read/write tasks (recv_frame is not cancellation-safe, so select! on one &mut Session is unsafe). send_frame/recv_frame/peer_id/into_inner unchanged; 13 tests still green. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>