Mastodon dms are just posts with limited visibility, and a mention to the person recieving it. They don’t seem to be compatible with lemmy.
They’re not, they’re a different kind of object on the ActivityPub level. Lemmy and some others use the unofficial extension called Litepub which includes a custom ChatMessage type, while Mastodon and others have chosen to repurpose the Note object (used for posts and comments on Mastodon and comments on Lemmy) with limited visibility and weird mention rules.
Sounds like the protocol needs an upgrade if people are doing funny stuff like that. No?
I recently did a library implementing pretty much the whole ActivityPub protocol and let me tell you one thing I’ve learned: ActivityPub is a half-assed unfinished mess.
It has so little constraints that pretty much anything is valid. You’d think that there was some logic at the core, but not really.
For example, there’s the Like activity, the name is pretty self-explanatory. But it’s valid to like anything. You want to like another Like activity? Why not! So you can like a like that likes a like…
Obviously, no real project implements such nonsense. But because almost everything is valid and up to interpretation of the implementer, there really is no single ActivityPub to implement that gets you running smoothly. There are many de-facto standards with various levels of compatibility with each other. Sending private messages is one such thing that many projects chose to implement in different ways.
Fun fact: Without implementing the HTTP Signatures spec, your app will not be able to send any activities to any software, because ActivityPub allows anyone to impersonate anyone, which obviously didn’t really fly with people developing actual software that uses it.
In conclusion, pure ActivityPub is an unusable mess in its pure form that literally won’t be able to communicate with other software implementing “ActivityPub,” so everyone is kind of implementing a similar slice/hybrid of ActivityPub and other protocols, but not exactly the same ActivityPub.
Oof, sounds like we really need a new, better put together version of the protocol. I wonder if the W3C would be good to do that.