Full send pipeline: serialize_chat → MLS encrypt → sealed sender → per-recipient hybrid wrap → batch/individual enqueue via v2 RPC. Full receive pipeline: fetch/fetch_wait → sort by seq → hybrid unwrap → MLS decrypt → unseal → parse AppMessage. Includes retry loop for multi-epoch batches.