Heaven Documentation

Conversations


This document supercedes "Conversation Containers".

An Introduction to providing and interacting with Conversations in ActivityPub


Definitions:


Conversation


  • Activities sharing a "context" element AND a "target" element AND where (context == target).


Root


  • An ActivityPub object with no "inReplyTo" field.


Conversation Owner


  • The 'actor' that Adds the Root object to the Conversation. MAY also be discovered through de-referencing

    (context || target)->attributedTo.

Descendants


  • An ActivityPub object containing an "inReplyTo" field and is either a Conversation OR at mimimum contains an identical "context" with the Root object.


Participant:


  • Anybody who plays by the rules when encountering a Conversation.



The rules:


  1. All associated objects and their activity wrappers SHOULD be signed with FEP-8b32 Object Proofs
  2. The Conversation Owner SHOULD be the sole to recipient of replies generated by any Descendant in a Conversation.
  3. Descendants SHOULD NOT generate additional deliveries to "mentioned" actors or any other recipients when replying to a Conversation.
  4. Descendants SHOULD quietly ignore any Descendant object that was not sent by the Conversation Owner via an Add or Remove of that object to the Conversation target OR is a locally generated activity which is being sent to the Conversation Owner for the purpose of requesting inclusion in the Conversation.
  5. The Conversation Owner MAY accept activities of any type from any Descendants and  MAY Add them to the Conversation. This Add activity wraps the incoming signed activity as its object and this SHOULD be relayed to all Participants through unwrapping the embedded object after verification. The Conversation Owner also SHOULD send an associated Remove if the object is ever removed from the Conversation.
  6. Participants MIGHT WANT to ensure their same-origin policy implementation allows the import of embedded third-party signed objects via Adding to Collections with different owners.