FEP-1b12: Group federation

That’s what I thought, but it’s not clear. In any case, it’s not a typical AP interpretation.

(See the related quote from @Gargron.)

Announcing an activity works quite well with Mastodon. Indeed FEP-1b12 would probably need another approach if it didn’t.

I did some more digging. I see why it works now. This feels like another Mastodon-specific implementation detail/quirk and not something a typical AP server would expect.

It works because when Mastodon sees the Announce embedded object is an unsupported type it tries to fetch the remote “status” (just in case it’s different?). To fetch the remote status it uses the id of the Announce embedded object if the object is a supported type. Otherwise, it uses the id of the object of the Announce object (the Create object, if I haven’t gotten lost somewhere). It fetches that and tries to create a Status from it. It looks like this convoluted behavior is possibly related to “bearcap” support (based on the function naming), but I’m not very familiar with bearcaps so I’m not sure.

I also think this might not work for anything other than an Announce of a Create (since the “create” behavior is implicit in the code logic). The algo I outlined above doesn’t seem like it would work for an Announce of a Like or a Delete, for example.

2 Likes