Skip to content

ActivityPub

Focused discussion related to ActivityPub integration in NodeBB

121 Topics 1.8k Posts

Subcategories


  • Discussion and announcements related to the SWICG Forums and Threaded Discussions Task Force.

    This profile is a discussion forum category and shares content from users who post in its discussions.

    39 Topics
    887 Posts
    julianJ
    The full minutes from the Forum and Threaded Discussions Task Force monthly meeting (held on 5 December) can be found at this Google Docs link The minutes are also inline below. Apologies in advance if I misrepresented anybody or missed any crucial bits of information. December 2024 Minutes Forum and Threaded Discussions Task Force --- Housekeeping Julian noted that the event description in the SWICG calendar calls for a monthly meeting from 1700 to 1800 UTC, although the scheduled time is pegged to 1300 to 1400 Eastern Time (observing DST). Dmitri (absent from meeting) to update event description as:Article and Mastodon treatment of non-notes Darius provided an update – been under the weather and busy with some other work-related items, but: Mastodon team cautiously optimistic about upstream PR, some concerns were voiced over things like inline images Hopefully by next month will have something more concrete to show to them; re: demo package Evan (@[email protected]) planning to get some people together in-person, to work together at FOSDEM in Brussels (Feb 2025); specifically to address long-form text issue Discussions about this in the task force would be considered the crucial pre-work Darius will update the group if something happens before January (re: code or PR package) A test instance up and running, Darius plans to make it more accessible for others to check out Silverpill’s FEP 171b is now an official draft, open for comments on SocialHub No specifics, just a news item. Context collections FEP Convergence Rationale for recommendation outlined in meeting agenda. Evan (@[email protected]) and a (@[email protected]) met up just prior to the WG meeting to discuss and work out differences between their FEPs; main notes: Using context to represent a reply tree is good Restricting usage of context is not the goal of 7888 or the ForumWG Co-exists well with 76ea’s thr:thread property to denote a reply tree, etc. Recommending use of as:context is one good way forward Evan recommends that the “should” in the proposal be changed to a “may” PROPOSAL: Publishers SHOULD use `context` for grouping related objects in a thread (but this is not the only way to use context). RESOLVED with 8 ayes, no nays, and no abstentions Brainstorming focus items for 2025 Emelia (@[email protected]) – multiple contexts? a (@[email protected]) : we need to also handle the fact that some contexts may not resolve Emelia: as:context can be an array of values in JSON-LD a: inReplyTo can have multiple values too; but in general, on the producing side we generate a single value – generally expect context/thread to remain the same (singular values) Sebi: "we thought a lot about multiple contexts" - led us to the conclusion of using profiles/describes property; per spec can only have one value Julian: Handling when implementors (e.g. lemmy/piefed) don't have the concept of topics a: there are multiple different models of how items are grouped together; reply tree model works for large part of the fediverse; mastodon has concept of reply tree represented internally as a conversation (vs context); this could be expanded into a conversation having an owner, etc.; mastodon has the conceptual ground to build upon Evan: reply trees work well on microblogs, blog comment trees, threaded posting systems, forums; other applications expect a more serial model... messenger/chat systems, where ordering of objects is not in a tree, no explicit relation between them; hashtags, locations, few other ways to use context Emelia: clarify overlap between replies collection and context collection? a: in general will include both ancestors and descendants; could add filters, look at tags, etc. to get subsets. If you are querying by context, you are looking for all objects related by said context Evan: full tree Julian: Mastodon reply-tree service proposed (https://github.com/NeuromatchAcademy/mastodon/pull/44) Julian: worried about scalability and performance of a backend service iterating through an entire reply tree; advocates that retrieving as:context is more performant especially if we build in some tooling for synchronization and member checking Emelia: historical reports of harassment due to `inReplyTo`; when looking at context including descendents, then how do we generate the tree? Evan: fep 76ea goes into detail about how reply trees can be managed a: answer is "who has the authority?"; who decides what goes into the collection? the `attributedTo` actor. For the replies collection, this exists IN PARALLEL TO `context`; in some ways a subset of the thread; could be a point of contention for systems that expect all objects to exist in general vs. conversation oriented Julian: upends expectation that objects are independent Darius: does this relate to announce leaking? recommendations that you not forward the entire object, just the ids Emelia: related but different; announce leaking -- should only ever do objects by ref (by the id) a: the paradigm shift is more social rather than technical -- that you cannot just rely on inReplyTo to prove that an object is approved some duplication as context includes replies, but they are distinct collections. They are decided by different authorities. `replies` is decided by whoever wrote the post Ted (@[email protected]): This sounds a lot like reinventing netnews, without taking the lessons that were learned from it; blurring the ideas of message store/relay/display; for all of this to work, the system has to pick up all replies, and let the client filter. Julian/a: anything specific to share? lessons, etc. – definitely of interest in not repeating the same mistakes
  • 14 Votes
    2 Posts
    44 Views
    eeeeeE
    Great. Do you have an approximate date v4 will go live?
  • Can I bridge from NodeBB to Bluesky?

    28
    0 Votes
    28 Posts
    347 Views
    Jon PincusJ
    @julian I'm able to follow @[email protected] , now trying to mention ...
  • "Shares" now tracked and shown in profile

    3
    14 Votes
    3 Posts
    98 Views
    julianJ
    @[email protected] that's a good point. Both Lemmy and NodeBB implemented FEP 1b12, which is why those category/community actors share content. So yes, NodeBB's category actors also only share content, and don't produce any of their own.
  • Lemmy and NodeBB

    17
    0 Votes
    17 Posts
    2k Views
    julianJ
    @[email protected] image attachments should be better handled by NodeBB now
  • Category by mentioning

    13
    3 Votes
    13 Posts
    156 Views
    frankm@radforum-duesseldorf.deF
  • User-Agent header for AP requests

    5
    3 Votes
    5 Posts
    66 Views
    julianJ
    @[email protected] confirmed, the missing user agent was the issue
  • Now handling markdown content sources

    1
    5 Votes
    1 Posts
    38 Views
    julianJ
    As reported initially by @[email protected], there are some posts from Lemmy that didn't make it over to NodeBB. This turned out to be an issue with how content was parsed by NodeBB if source.content was also present. The code has been updated so that if a content source of type text/markdown is provided, then that source is used instead of the generated HTML. Outside of Lemmy, this also applies to any implementor (snac2 maybe?) that also implements the source.content property.
  • Quoted posts

    70
    6 Votes
    70 Posts
    876 Views
    Christian StangeC
    @[email protected] said in Quoted posts: One big benefit of this proposed quote post methodology is that it would be a version that Mastodon, et. al. would probably be willing to support. They have valid concerns that people will abuse quote posts to harass others. This proposal mitigates that. It also is useful in non-malicious contexts since people can fix typos and errors in their original post. It's also useful if the person being quoted wants to retract what they said, perhaps because they changed their mind on a topic or found new information. Well, and Mastodon et. al. are free to implement it that way. There is of cause the limitation of the technical solution on the Forum side regarding editing or deleting; but Mastodon is free to implement it as links. In the same way as a Forum solution has to implement it as qoutes, because the context is different. That means that if the forumpost actually becomes edited or deleted, Mastodon will delete it, because the link has disappeared, but if the Mastodon qoute disappears, the qoute stays in the forum, but the link back to source disappear so now it is just a statement witout a source.
  • Documentation

    Moved
    6
    1 Votes
    6 Posts
    87 Views
    julianJ
    Hi @FrankM, I have a write-up on content discovery (including needing to follow people) here: https://docs.nodebb.org/activitypub/discovery/
  • NodeBB v4.0.0 Beta

    20
    17 Votes
    20 Posts
    951 Views
    kainosK
    What about Design v4, is the same like 3.11.0? Is there Grid categories Options with images? Invision Community tests v5 Beta 6. Here some Forums https://www.fanclubs.org/ https://jimiwikman.se/ https://www.internazionale.fr/ https://krscanski.chat/
  • RC1 of NodeBB v4

    12
    15 Votes
    12 Posts
    349 Views
    julianJ
    @[email protected] You can start a new thread by mentioning the category directly in a new topic. NodeBB sends Create(Note) from the author, and then five seconds later sends Announce(Create(Note)), Announce(Note), and Add(Note). Hubzilla may be misinterpreting the last three.
  • Emoji now federating out

    14
    12 Votes
    14 Posts
    318 Views
    nhl.plN
    Please make them visible for topic listing. [image: 1732745247674-emoji.png]
  • Custom fields now federating out

    8
    +1
    7 Votes
    8 Posts
    279 Views
    trwnh@mastodon.socialT
    @julian @silverpill also your Link.href is being escaped incorrectly
  • 1 Votes
    19 Posts
    243 Views
    silverpill@mitra.socialS
    @julian @mario @jupiter_rowland @benpate @fentiger @scott>Would you consider relaxing this to allow for situations (e.g. forums) where the conversation thread starter is not necessarily the manager of the container?As far as I know, in Streams OP and owner are identical, but you are right - they might as well be different. I'll mention this in the FEP.>I haven't seen collectionOf in the wild before, what purpose does it serve here?Again, this is what Streams does, I'm guessing this is because some context collections contain posts and not activities, and collectionOf tells you how to parse the collection without resorting to duck typing.I would prefer to use an outbox property for containers.
  • Question re: @context and JSON-LD

    5
    0 Votes
    5 Posts
    115 Views
    trwnh@mastodon.socialT
    @julian @thisismissem which is to say, the following are equivalent within the same scope...@\context: [{toot: http://joinmastodon.org/ns#,Emoji: toot:Emoji},{toot: http://joinmastodon.org/ns#,IdentityProof: toot:IdentityProof}]@\context: [{toot: http://joinmastodon.org/ns#,Emoji: toot:Emoji,IdentityProof: toot:IdentityProof}]
  • Signalling "open in app" behaviour for AP content

    32
    4 Votes
    32 Posts
    1k Views
    julianJ
    @[email protected] @[email protected] Thank you for the update. Independently of this draft, I partially implemented this in NodeBB so that clicking external links in-app go through a middleman step where existing known resources are loaded in-app, and retrieved via AP otherwise. Fallback is just to send the user to the url as originally intended. Section 2.1 details use of content negotiation, but I have not implemented that yet mainly because early tests indicated that I'd more often than not receive HTML back despite the AP Accept header. So right now it's: Redirect to in-app representation if recognized HEAD call to search for Link header Return failure and send user off-site.
  • 4 Votes
    1 Posts
    116 Views
    julianJ
    Additional pages have been added to the NodeBB documentation regarding the following items: Post visibility — how NodeBB handles incoming activities with public and non-public visibility, and how they are represented in NodeBB. Conversational Contexts — how NodeBB builds out a conversational context when parsing incoming content.
  • 10 Votes
    18 Posts
    1k Views
    jupiter_rowland@hub.netzgemeinde.euJ
    @Stefan Bohacek @jdp23 @julian "Shadow mentioning" is a thing. (streams) and Forte do it to avoid clutter. Mentions don't have to be visible in a post/comment to work.
  • `Update(Note)` quirk

    11
    8 Votes
    11 Posts
    320 Views
    thisismissem@socialhub.activitypub.rocksT
    julian:This whole thing could actually be sidestepped if we sent timestamps with our activities, but that's not in the spec, so I guess nobody does it heh.This sounds like a wonderful FEP!
  • Test post, greetings from lemmy

    2
    1 Votes
    2 Posts
    143 Views
    julianJ
    @[email protected] sort of? It went through but did not get categorized correctly. Nevertheless I will move it over for you.