Okay, a few things:
1/ The VerifyLinkService does a case-sensitive compare, even of the domain. https://github.com/mastodon/mastodon/blob/c3aef491d66aec743a3a53e934a494f653745b61/app/services/verify_link_service.rb#L31
2/ The ActivityPub spec doesn't specifically mention case, but since URIs are used for identifiers and URIs are technically case sensitive (apart from the hostname), that makes identifiers case sensitive. https://www.w3.org/TR/activitypub/#obj-id
3/ ((And this part is just supposition)) Mastodon sweeps case under the rug by preventing two accounts from having the same case-insensitive identifier.
Alright, here goes nothing: https://github.com/mastodon/mastodon/pull/18320
@Edent Because I have a staggering lack of experience in Ruby. :)
@saramg haha! Snap 😆
@saramg very interesting, thanks.
I'm new to Ruby, so I hope you won't mind the question - why do you downcase both sides rather than using a case-insensitive comparison?