People want to forget v1 existed so there is no good doc to show. But essentially, v2 fixed some issues with message length (smaller messages would yield smaller encrypted bytes, which is not ideal). We also got rid XChaCha because it is not standardized and the added protections aren't needed inside Nostr messages.
v1: XChaCha20 with sha256(parity + ecdh) as a shared key per conversation
v2: secp256k1 ECDH, HKDF, padding, ChaCha20, HMAC-SHA256, base64
v1: https://github.com/coracle-social/nips/blob/7f98a7b8849c16f9d324e0ea15db4efda0ee84fb/44.md
v2: https://github.com/nostr-protocol/nips/blob/master/44.md