[Agenda preparation for the October ForumWG meeting can be found at this public link]() (anyone can make comments for review.) Monthly meetings are held on the first Thursday of each month, at 1700 to 1800 UTC. You can find them listed in the [SocialCG Calendar](). The next meeting will be held on 3 October 2024. We will be continuing onwards with discussions regarding context resolution. Multiple FEPs touch on the subject and there is an opportunity for potential convergence towards a single (or pair) of FEPs that share enough commonalities to allow for interoperability. As always β€” time permitting β€” if you'd like to speak or inquire about a certain topic, comment in the agenda or reply here, the floor is open!
@npub1sfqq...cxv5 Hooray, I'm finally able to mention you again lol. I had to manually fix an entry in my db, and I don't quite know why it stopped working for you.
**tl;dr** β€” category actors in NodeBB now have better avatars/pictures! They're generated from the `icon`, `color`, and `bgColor` settings for each category. Did you know that categories in NodeBB can also be followed on the social web/fediverse? Categories, as they are known here, are also actors on the fediverse, so you can find them just like any other account. e.g. @general-discussion @support @nodebb-development @activitypub @npub1xsel...lgk3 opened [an issue back in **April**]() (!!) pointing out that the avatar/picture served by NodeBB for category actors was not as good as it could be. It's definitely possible to do something like this, although it is usually rather resource intensive. For example, when you paste a GitHub URL somewhere (e.g. Slack), it may try to unfurl the URL and display an image. [GitHub blogged about how they did this]() using Puppeteer to generate the images. I knew right away I didn't want to bundle what was _basically_ an entire browser runtime into NodeBB's dependencies, so I needed a more lightweight solution. I attempted to build my own SVG string and send that through as a data-uri, but not surprisingly, it was not handled by the implementations I tested. Some more research this week led me to Vercel's [OG Image Generation](), which allows you to create images on the fly using Vercel Edge Functions. Since NodeBB is neither a Vercel app, nor do any people running NodeBB use Vercel, that ruled out this product. However, more research into Vercel's implementation led me to Satori and resvg, a pair of programs that can generate an SVG from HTML, and a PNG from SVG. From there, it was a fairly standard technical exercise to combine these with our font-awesome libraries in order to output our own implementation of this to generate colourful category avatars for its category actors. For now, they are only generated on-demand when a category actor is requested, but if there are applications for the icons to be used elsewhere, then we could look into having them generated on direct file request. Enjoy! ![0ff837a6-8f76-4c81-a81f-d4ad6d24660e-image.png](/assets/uploads/files/1727458898541-0ff837a6-8f76-4c81-a81f-d4ad6d24660e-image.png) image
TIL that CloudFlare actually built and maintained [their own ActivityPub software called **Wildebeest**]() and shuttered it at the end of Q1 2023. That's wild. https://blog.cloudflare.com/welcome-to-wildebeest-the-fediverse-on-cloudflare/
Did @npub19yg7...wysk or @npub1t5c9...ppw4 put together a draft FEP that successfully merges 7888, 400e, and @npub1k90l...q43y's conversation containers? I remember reading it last week, and wonder if it's the one true FEP that will render the others obsolete.
Last friday I [quietly tagged a commit on the `activitypub` branch]() with `v4.0.0-beta.1`, which signals that the ActivityPub integration is now ready for beta testing. For the most complete (yet readable) list of new functionality from the alpha, check out [the "Road to Beta" project page](). **tl;dr** β€” some new features and a lot of fixes * Editing a category now issues an `Update(Actor)` * `replies` is now populated and responds with an OrderedCollection of direct replies ([see the post about _that_](https://community.nodebb.org/topic/18156/regarding-replies-and-inreplyto-traversal)) * Proper `sharedInbox` support * Better indicators for content that comes from non-local (aka "remote") users * Conversational `context` synchronization mechanic ([corresponding post for that]()) * Moving a topic out of the "uncategorized" category will now federate out an `Announce` By and large most incompatibilties have been resolved, although if you do find some issues, please do let me know in the corresponding bug report thread. I'm looking to wrap up the year with some of the more difficult projects I've put off * [Object Integrity Proofs](), which will also enable [Inbox Forwarding]() * Better handling of "Open in App" signals from third-party instances * Post visibility support (or at least better handling so non-public messages aren'y unceremoniously dropped!) * Ongoing integration with FEPs [400e]() and [7888]()
**re: better handling of non-notes by Mastodon** Toward the end of a day 2 FediForum session, @Matthias Pfefferle, @npub1740t...3wtz, and I sidetracked a bit and discussed once again the tendency for implementors to shift away from more suitable ActivityStreams Activities to `as:Note`. Specifically, it was the demo/session by @npub1thg9...zq23 re: TrueFans. Instead of federating out an `as:Listen`, they send `as:Note`, and it's a fairly safe bet that this is because the content cannot be richly represented in Mastodon. The same story played out with Mattias and the WordPress plugin, and myself with NodeBB. Secondly, back in March/April and again in May, @Renaud Chaput [mentioned that resolving this was of some interest to the Mastodon team](): > We will work on improving the display of non-Note content in the next Mastodon version *To be clear*, getting Mastodon to suitably process `as:Article`/`as:Listen`/`as:Offer` or any number of other activities **is not what the ForumWG wants to accomplish**. It's not up to Mastodon to adapt to the variety of content on the fediverse, but rather that its fallback handling needs to improve _just enough_ so that its baseline rendering is acceptable to more implementors and their users. As concise and actionable as I can make it: 1. Mastodon allows a subset of HTML for `as:Note`. This subset **is good enough**, but `content` in _non-notes_ has all html stripped. Keep consistency here and allow the same subset of HTML. 1. Non-note `content` is truncated. This is no longer necessary due to the addition of the expand button. The wonderful thing is this standardization of behaviour actually _simplifies_ Mastodon code. 1. Instead of appending the object URL to the status content, promote the "Open Original Page" button out of the overflow menu. It's more than okay to defer to the original site vis-a-vis presentation and allow the user a smooth exit if desired (`target="_top"` would be okay too if you're worried!) **That's it**. You could even skip the third point, but even with 1 and 2 achieved this would sufficiently raise the baseline behaviour _just enough_ that I would immediately update NodeBB to send `as:Article` for new topics, and I am certain @Matthias Pfefferle would adjust his defaults as well. ---- Lastly, @Renaud Chaput, I'm sure I can speak for everyone at FediForum when I say that it was wonderful to see representatives from Mastodon (that of course includes @Andy Piper as well) in attendance. It means a lot to me personally that you were there, and sends a signal that Mastodon continues to desire broader inter-compatibility.
Hmmm... so I attempted to utilise Mastodon's account move functionality to send my followers over to this account. It seems like the process started ok (Mastodon reports the account is now moving and redirecting), but it's been about 20 minutes and I don't think I've gained any new followers, heh. Is there a delay or perhaps I did something wrong... ![Screenshot 2024-09-04 at 23-02-29 Account migration - Crag Social.png](/assets/uploads/files/1725506968273-screenshot-2024-09-04-at-23-02-29-account-migration-crag-social.png) image
I had the opportunity to work with the team at [OpenBeta](//openbeta.io) on the re-launching of their community forums. They're one of our earliest v4 testers, since they've agreed to have ActivityPub enabled! (Okay, more realistically I dragged them into it kicking and screaming, but they did provide the opportunity for the forum relaunch, so I'm taking the opportunities as they come!) During the prep, I discussed some of the well-trodden concept of the fediverse to my co-admin, Ben (@npub1sev4...9n0v and also @npub19gpy...fxk2)... stuff I'm sure you've come across: * Fragmented nature of conversations * The idea of an instance * Content discovery with respect to the follow-relationship model ... and wouldn't you know it, it's **really hard** to discuss these ideas, and Ben is actually fairly well-versed! He ran his own Iceshrimp instance, so all of this wasn't exactly new to him. Part of it was that I had been steeped in the ActivityPub dev scene for almost a year, so it's hard to step back and explain to ~~mere mortals~~ ~~laymen~~ non-developers what exactly all this ActivityPub nonsense is. All I know it gets me thinking that I need to work with @Andy Piper on documentation! That new NodeBB instance, by the way, is :)
Super stoked that @oliphant@oliphant.social started ION, a limited federation network that uses allow lists instead of deny lists. If there's one thing that we know so far in light of these recent discussions about moderation, is that we don't know what the solution is, nor whether a one size fits all approach is even feasible. There will always be communities who value reach above all, and there will be other communities (especially marginalized ones) to whom limited federation has great appeal. This is a wonderful experiment, and I wish them all the best!