Happy Tuesday!

Today we’ve updated the NodeBB community forum onto the remote-categories testing branch, which means that users on the open social web that identify themselves as “Groups” will be rendered in NodeBB as categories. Prior to this, they looked like users.

Here are some examples of remote categories:

ActivityPub “groups” and forum categories have quite a few things in common — they don’t usually post topic themselves, they “contain” topics, and they are usually administered by a separate group of users (moderators!) In many ways, these groups lend themselves to categories much more easily than they do as users.

Notes:

  • We will likely be releasing this as v4.3.0-alpha this Wednesday. Probably this means you don’t want this on a live forum just yet.
  • A lot of the backend logic is complete, but a lot of the frontend UX will be worked on.
  • You can “search” for categories (via “in categories” in the search page), paste the full handle in order to instruct NodeBB to pull a new category in.
  • You can now no longer mention a remote category. Instead, create your topic right in that category itself. As it should be :smirk_cat: .
  • Remote content coming in that is slotted into a remote category will still show up in your “world” feed. That is still intended to be where discovery of content outside the local NodeBB instance will take place.
  • Report any bugs or confusing behaviours (and there will be some) here.

Screenshots

4872fc8c-a679-4968-9daf-84bedb8bf237-image.png

08c3972a-6c7e-4cef-937c-0c4830770a8a-image.png

  • AltCode@community.nodebb.org
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    2 days ago

    Some of the remote categories appear to be broken now.

    These are the Flipboard magazines NodeBB is currently aware of when searching “flipboard” in the search page:

    However, that very first one (tech news by The Verge) does not work; going to it gives a 404 page instead.


    Something else appears to have happened to the Vivaldi Blog remote category (a WordPress blog). A week ago it was working fine, but now, searching for it lists it twice in the search page. Each listing indicates a completely different number of posts and topics for the remote category.

    Even weirder though most of the topics that are correctly slotted into it, they are not actually in the category page, e.g. https://community.nodebb.org/topic/a85b0eff-5219-46ba-9ad4-a5d417a7bec5/minor-update-2-for-vivaldi-desktop-browser-7.3


    Screenshots

    Screenshot 2025-04-02 at 22.00.00.png Screenshot 2025-04-02 at 22.17.39.png

    • AltCode@community.nodebb.org
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      2 days ago

      Actually, I think I know what’s going on with the Vivaldi blog group actor - it’s not necessarily NodeBB’s fault.

      Inspecting the AP objects coming from vivaldi.com/blog, all the English-written blog posts have their as:audience field set to https://vivaldi.com/?author=0.

      Meanwhile, every other blog post that is written in a different language instead have it set to https://vivaldi.com//?author=0, so for Japanese blog posts, for example, it is https://vivaldi.com/ja/?author=0.

      And all these URLs link to different group actors, but all of them have the same value on the preferredUsername and webfinger properties: blog, and blog@vivaldi.com.


      EDIT: Actually this also appears to be all actor objects coming from vivaldi.com/blog. E.g. if you start typing [@ruari@vivaldi.com](https://community.nodebb.org/user/ruari%40vivaldi.com) or search for it, you can see it be suggested twice too.

      So my guess is that there are two person actors that NodeBB knows of that are claiming to be ruari@vivaldi.com: https://vivaldi.com/?author=46 and https://vivaldi.com/ja/?author=46.

      This is probably a bug with the WPML+ActivityPub plugin combination they have going on.


      Screenshots

      Screenshot 2025-04-02 at 23.35.28.png Screenshot 2025-04-02 at 23.40.47.png

      • julian@community.nodebb.orgOP
        link
        fedilink
        arrow-up
        1
        ·
        1 day ago

        @AltCode I forked this out to a new topic. I think it’s time to loop @pfefferle@mastodon.social into the conversation (at the very least so this could be potentially escalated).

        Mattias, it seems that when the WPML and ActivityPub plugins are enabled together, notes federated out by the blog user in another language have different ids but the same preferredUsername.

        e.g. ruari@vivaldi.com: https://vivaldi.com/?author=46 and https://vivaldi.com/ja/?author=46

        NodeBB interprets this as two different users. Curiously, Mastodon does not, the second ID explicitly does not resolve.

        So there can be two solutions here:

        1. The underlying issue can be fixed by WordPress, the solution of which is out of scope (for me at least)
        2. NodeBB can adopt whatever mechanism Mastodon is using… which is most likely that Mastodon does a two-way when asserting an ID, and ensures that the webfinger resource points to the ID.
        • julian@community.nodebb.orgOP
          link
          fedilink
          arrow-up
          1
          ·
          1 day ago

          The remaining questions here are:

          • whether preferredUsername is meant to be unique to the instance (in which case having multiple ids point to an identical preferredUsername would be a violation), and
          • what exactly AP software should do when it encounters this situation… store a list of “known alias” IDs? There are potential security issues to doing so.
      • julian@community.nodebb.orgOP
        link
        fedilink
        arrow-up
        1
        ·
        1 day ago

        @AltCode okay! Thanks for reporting, it sounds like there are two issues going on:

        1. Categories losing their handle-to-id association
          • Frustratingly, this read very similarly to #13283, and both remote users and categories share similar logic. I have so far not been able to reproduce it at all on local development.
        2. Separate users (different IDs) sharing the same preferredUsername.
          • This is an interesting one, and I am not entirely sure where the fault lies. I wonder how other software handles it?