@mike

Which is it? If it's both, how does that work?

Yes, it's both. The backfilling algorithm described in the FEP should be used on a top-level post. When this post has a contextHistory property, it will resolve to a collection of activities. When it has a context property, it will resolve to a collection of posts.

wtf is a "collection of posts"

Alright, I will add a definition to the FEP.

"post" is any kind of attributed object. Usually it's a Note or an Article, but it could be an Event too, or something else entirely. What's important is that "post" is not an activity.

And if "contextHistory" is an equal player with "context", every.single.fediverse.project now has to examine every context they copy to their own objects and activities, just to ensure they get the right one in each case. And if both are present, copy both - after checking that "context" is or isn't the one they really want.

It shouldn't be a problem because with the proposed backfilling algorithm the collection item type is always known beforehand.

If it's a problem, you can use duck typing on collection items. That's what I do when I fetch an object whose class is not known.

fep/fep/2277/fep-2277.md at main

fep - Fediverse Enhancement Proposals

Codeberg.org

@silverpill @mike

> What's important is that "post" is not an activity.

I don't see why this is important. In my view activities are posts. If Mastodon et al disagree, that's not my problem.

Also, the context can be anything. I don't see why a 2nd "contextHistory" property is necessary, nor am I entirely clear what it's supposed to mean semantically...

@trwnh It's a long story, but the gist is that there are major architectural differences between @mike 's implementations and many others. contextHistory was introduced in an attempt to create a conversation backfilling algorithm that works with all implementations
@silverpill @infinite love ⴳ It's kind of fascinating that the very first software to implement ActivityPub was Hubzilla, originally created by @Mike Macgirvin (that's where you can find him now, by the way).

It already had a kind of precursor of FEP-171b "Conversation Containers" implemented, so it has never even needed any backfilling. At the same time, its ActivityPub implementation was more by-the-book than Mastodon's two months later (as by-the-book as you can implement ActivityPub anyway).

I guess the big issue is the dichotomy between purist Twitter-style microblogging where enclosed conversations are superfluous luxury that just makes things unnecessarily complicated and Facebook-like or Reddit-like stuff where enclosed conversations are essential. On top of this, not many know that the Fediverse has the latter in the first place. It's bad enough for (streams) and Forte admins now having the option to lock the former out entirely in one fell swoop.

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Hubzilla #Streams #(streams) #Forte #ActivityPub #FEP_171b
Mike Macgirvin

Farmer in Bugger All, Australia. Plays a mean guitar, upside down and backwards. Systems integration, software development, and robot repair.