Skip to content

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

Context deletion vs. Removal brainstorming

Technical Discussion
5 2 5

Gli ultimi otto messaggi ricevuti dalla Federazione
  • At least from the point of view of NodeBB, when a topic is deleted, the Collection is de facto gone. That's why it's problematic to federate out a delete because nobody else can resolve it to find their "version" of your context.

    read more

  • I think context property should point to a collection (a dynamic view), but we can introduce a new Delete-able object that is linked to that collection. It could be an actor: https://codeberg.org/fediverse/fep/src/branch/main/fep/f06f/fep-f06f.md

    You also mentioned Remove, how it should look in practice? Remove from what target?

    read more

  • @helge ActivityPub requires application/ld+json; profile="https://www.w3.org/ns/activitystreams"

    https://www.w3.org/TR/activitypub/#retrieving-objects

    The shorter form application/activity+json is nicer, but media type is one of the things about which specification is not ambiguous, so I always use the required one.

    application/activity+json is (or was) used by Mastodon, so of course everyone copy-pasted it into their projects.

    read more

  • @silverpill

    Thank you - I wasn't aware of Mitra supporting conversation containers and nomadic identity, happy to learn.

    I have some questions about Mitra, I will ask them in a separate thread.

    @osma

    read more

  • This is an extension of the discussion from Topic removal from a category/community.

    In it, rimu@piefed.social shared the Lemmy federation primer which details that Delete(Object) is federated whenever a post is removed from a community.

    I needed a way to communicate when a topic/context (not the top-level post) is removed from a category/audience, but is not deleted. You might ask — how is removing a context different from deleting it? In this case, a removed context still exists and is still resolvable. A context can removed from an audience in NodeBB.

    Note that Lemmy and Piefed don't have a concept of an audience-less context, so if a context is removed from an audience, it would simply be deleted. No additional logic required.

    Anyhow — when a topic is moved into Uncategorized (which is a catch-all bucket for... you guessed it, uncategorized content), NodeBB will federate a Remove. It looks something like this:

    { id: '#activity/remove/', type: 'Remove', actor: '', to: [], ccL [, object: '', origin: '', }

    This is live on activitypub.space already.

    This goes hand-in-hand with topic moving, which would follow similar mechanisms, except it'd be a Move instead of a Remove.

    I will likely write an FEP with technical details for both Remove and Move, and will include existing behaviours (Delete(Object)) as well.

    read more

  • The problem for us is that we actually did take advantage of the bi-directional data flow available with web sockets. However, probably > 90% of our websocket calls were simple data requests, so we dropped back to bog-standard GET and POST. Why re-invent the wheel?

    It's that other half where you want to communicate events in real-time, where SSE makes sense.

    read more

  • Yeah I went the SSE route too. Nice n simple.

    read more

  • @evan this is what happens when you read the fedi at stoplights.

    I'd think some kind of link to the "triggering" activity in the result.

    (I'm speaking from a very old and rusty memory of AP, but)

    Is a result an activity? Can it live on it's own? If not, it seems like a processor can make the assumption that object → result? Otherwise, a link to the triggering activity by id could work. But what to call that link? <shrugs>

    read more
Post suggeriti
  • 0 Votes
    1 Posts
    10 Views
    Week in Fediverse 2025-10-03Servers- flohmarkt v0.12.1- Gush! v0.0.23- NodeBB v4.6.0- ActivityPub for WordPress v7.5.0- Ktistec v2.4.15- Hollo v0.6.12- tootik v0.19.6- NeoDB v0.12.3- Vernissage Server v1.23.0- PieFed v1.2.3- September 2025 (Bandwagon)- ONI news for September (Oni)- Bonfire Social 1.0rc3- ActivityBot: A Simple ActivityPub Bot Server in a Single PHP FileClients- Fedilab v3.35.1- Pachli v3.0.0For developers- ActivityPub Fuzzer: Emulates known Fediverse software, helping solve the problem where developers have to manually test compatibility with other projectsArticles- Getting started with Mastodon's Quote Posts - technical implementation details for servers- Fediverse Report – #136-----#WeekInFediverse #Fediverse #ActivityPubPrevious edition: https://mitra.social/objects/019987c8-484d-f913-d511-5e8329f9741f
  • This is amazing news!

    General Discussion activitypub fediverse fedify
    2
    0 Votes
    2 Posts
    7 Views
    @box464@mastodon.social Thank you for spreading the word, we truly appreciate your support!
  • 0 Votes
    4 Posts
    11 Views
    @shmok @julian the izzyondroid repository has some: https://apt.izzysoft.de/fdroid/repo?fingerprint=3bf0d6abfeae2f401707b6d966be743bf0eee49c2561b9ba39073711f628937a
  • 0 Votes
    1 Posts
    10 Views
    Mastodon has a concept called "pinned statuses", which is a special collection attached to a Person actor. https://docs.joinmastodon.org/spec/activitypub/#featured It wasn't readily known how this collection is updated and federated (not without code achaeology), but claire@social.sitedethib.com recently shared some additional info :smiley: The actor itself will issue an Add activity targeting the collection with the status in object. This activity is sent to all followers of the actor. No activity is sent if the actor has no remote followers. A Remove is sent when a pinned post is unpinned. This is what the Add looks like: { "@context": "https://www.w3.org/ns/activitystreams", "type": "Add", "actor": "https://example.org/users/testUser", "target": "https://example.org/users/testUser/collections/featured", "object": "https://example.org/users/testUser/statuses/115266412340579560" } The corresponding Remove is identical except for type, which is of course, Remove.