Federated SocialHub Categories

@angus What are your thoughts regarding Announce(Note)? Will Discourse send those activities in addition to Announce(Create)?

And another question: is it possible to add pagination to outbox collections? Some of them are very large, https://socialhub.activitypub.rocks/ap/actor/bcde488169a4ac803695493219aece2a/outbox contains >500 items.

Sorry for the slow reply.

tbh I’m still a little confused as to why you would want to send both Announce(Note) and Announce(Create(Note)).

Yes, I’ve been meaning to do this for a while. Thanks for the prompt. I’ll do it soon!

3 Likes

My software is more like a microblog than a forum. It has timelines where Announce(Note) are displayed as reposts. It can process Announce(Create(Note)) too, but they are not treated as reposts, so I can’t see what is happening in a Discourse group. I can fix that, but there was a discussion between you and @devnull about whether to produce Announce(Note) or not, and I am wondering what you have decided.

1 Like

Announce(Create) is always sent out for 1b12 compliance.

Announce(Note) is sent out for original/top-level posts only (for Mastodon compliance)

P.S. why did this series of replies not get federated?

2 Likes

I see. Thanks for your responses. I will think on it some more in the Discourse context. I haven’t had the bandwidth to really come to a conclusion on it yet.

Because the topic isn’t (wasn’t) published.

We’ve added manual publication controls now actually.

I’ve just gone ahead and published all the posts in this topic, so they’re available to other servers. They won’t be delivered though (as bulk delivery would be spammy). Now subsequent posts (e.g. this one) will be delivered to followers of Community. This is the current AP status of this post.

And other servers can pull in the context (i.e. the topic) if they so wish.

4 Likes

I made changes on my side - Announce(Create) activities are treated as reposts now. This workaround is not difficult to implement, and if other blogging platforms don't support these activities, not catering to them might be a better long term strategy.

Of course, if Mastodon doesn't support Announce(Create), the calculation could be different, but I was told that it supports them.

1 Like

Some threads are marked as federated, but they don't work properly in practice. For example, this top-level post doesn't have an attributedTo:

https://socialhub.activitypub.rocks/ap/object/cd75e6daab2c9e95d1c8fe47af8a3571

I can“t read that post you linked. Do you know its web (non-AP) URL?

@how FEP-0837: Federated Marketplace

Ah, interesting @angus… I found that post #2 was ā€œpublished on invalid dateā€, which seems to have prevented that the whole topic be federated properly. I tried delivering each post, and it worked for some of them, but not all apparently, unless this is a matter of time.

1 Like

@angus So I tried to implement that flow. At the ā€œVerifyā€ step, Discourse makes 3 requests:

  • /api/v1/apps
  • /oauth/token/ (with grant_type: client_credentials)
  • /api/v1/apps/verify_credentials

Is the last request really necessary? Generating token should be enough to confirm that the client is still registered.

I think you can also skip the ā€œVerifyā€ step altogether and leave only the ā€œAuthorizeā€ button. If the client ID is not valid anymore, register an application. That would simplify process for users and for developers of fediverse services.

Another option is to use alsoKnownAs: Moving or leaving accounts - Mastodon documentation. This solution is based on ActivityPub so it will work even with platforms that don’t implement Mastodon API.

@angus @silverpill at this point SocialHub has become a random information spout on anything with ActivityPub hashtag. There’s neither community, nor a meaningful discussion forum, no reason to visit, nor become a member. There’s perhaps a content aggregation point. And a microblogging client one might choose. But why would anyone do that, if the main navigation only shows the first chars of toots.

2 Likes

I mentioned this problem a couple of times in other threads, and it was added to the list of technical issues:

Although it doesn’t look like a code problem. I think this is just a setting that can be changed by forum admins.

1 Like

That would be because the community category is blindly synchronizing with general@activitypub.space

The latter is curated but Discourse (to be fair, nobody else either) doesn’t understand the Activities sent out for removing unrelated topics.

2 Likes

i think even with topic removals, general@activitypub.space is still way too noisy.

unfortunately, i’m not sure if the appropriate solution is to just stop synchronizing with general@activitypub.space. doing so would address the noise issue, but also lead to potentially missing out on topics worth discussing.

what is still missing is a way to selectively discover and pull in topics with intentionality. i’m not sure how this could be improved, but probably the aggregation and the topic tracking should be separated somehow. maybe coupled with a way to manually mirror certain threads to local ones? this would be similar to how git repos on gitea/forgejo can be configured to mirror git repos on a variety of code forges (github, gitlab, etc). local activity can be pushed to the topic tracker, and remote activity can be pulled in from the topic tracker.

2 Likes

It’s a trade off. General is meant to contain (with limits) things that are related to AP — not strictly technical or protocol related topics.

This forum, on the other hand, is about technical topics. So in that vein perhaps you should mirror technical-discussion instead.

The other side of the coin is that I’ve changed my mind on how category synchronization should work when it comes to federated forums/communities. The way Discourse and NodeBB currently do it, they will forcibly move the topic to the new category, even if it was originally part of a different category. That doesn’t respect the original category the topic was posted under, so some sort of labelling is needed… That’d be out of scope of this discussion however.

i don’t think socialhub ā€œis about technical topicsā€. rather, i think there is a mismatch between ā€œthe socialhub communityā€ and ā€œeverything tagged #activitypub across the entire fediverse (as observed by activitypub.space)ā€. using a hashtag is typically not an act of community; a hashtag is not a real thing (reified), and therefore cannot be owned/moderated/curated. people might use a hashtag communally, but that happens informally and incidentally, typically due to an absence of support for real communities (as twitter was a flat context-free space when hashtags were invented).

@devnull What are these activities? I'd like to support them.

Remove(Context) and Move(Context), the ones we had a discussion re: observers about :slight_smile:

2 Likes