Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarification about changing the audience in non public posts #327

Open
annando opened this issue Nov 1, 2018 · 17 comments
Open

Clarification about changing the audience in non public posts #327

annando opened this issue Nov 1, 2018 · 17 comments

Comments

@annando
Copy link

annando commented Nov 1, 2018

Technically it is possible to comment publicly on non public posts or to include other receivers. This can lead to some very bad situations when someone starts a non public conversation with three people and someone silently includes other people to the thread without notifying the other people.

I would like to know whether this is the expected behaviour or whether this should be avoided.

For technical reasons, Friendica is always inheriting the audience for comments from the starting post. Only for public posts we can add additional receivers.

@trwnh
Copy link

trwnh commented Nov 2, 2018

I think that would be up to the software implementation to not "silently" change the recipients? A new message can have a different audience, so if the audience on a reply to a private post includes more people, it might be a good idea to notify the user. Otherwise I think this is expected.

@nightpool
Copy link
Collaborator

nightpool commented Nov 2, 2018 via email

@annando
Copy link
Author

annando commented Nov 2, 2018

I will read that issue later (when I have got more time). The most important reason why I would like to define that the audience cannot be changed on non public posts (and that you shouldn't be able to answer a public post with a non public comment) is that there are not only post based, but also thread based systems out there in the wild. Systems like Friendica, Hubzilla, SocialHome and GangGo (and Diaspora) are defining the audience in the starting post. Mostly they aren't even able to display a single post but the whole thread. So the audience have to be public - or mustn't be changed.

@nightpool
Copy link
Collaborator

nightpool commented Nov 2, 2018 via email

@annando
Copy link
Author

annando commented Nov 2, 2018

In my eyes it has something to do with privacy. The thread starter defined the audience, so this should be respected.

@trwnh
Copy link

trwnh commented Nov 2, 2018

re: privacy, the thread starter can only control the audience of their own post, not the audience of any replies. To do otherwise would veer into the territory of allowing/rejecting replies, as #319 deals with. If you are doing proper cryptography, then changing the audience of the reply will lead to a situation where someone can see the reply, but not the original post. This isn't necessarily something you can avoid, unless the original post's host is responsible for distributing replies (at which point OP's server can enforce whatever logic the software desires).

@annando
Copy link
Author

annando commented Nov 3, 2018

There are many things that cannot be prevented, but could be discouraged.

There will be side effects of changing the audience of single posts in a thread: For example it is possible in Mastodon to reply to a public post with a non public comment. For technical reasons, Friendica can only discard such a comment - or make it visible for everyone, since it will inherit the thread audience. This could lead to some ugly situations.

@jaywink
Copy link

jaywink commented Nov 3, 2018

There will be side effects of changing the audience of single posts in a thread: For example it is possible in Mastodon to reply to a public post with a non public comment.

IMHO this is a completely valid use case, especially in a microblogging environment. Unlike in Diaspora protocol, ActivityPub doesn't specify a "comment" as a separate object. Additionally in AP each object has audience defined directly. As such it would be odd to somehow encourage on the protocol specification that if a Note is a reply to another Note, it shouldn't be able to define its own audience.

Socialhome currently does the same as Friendica due to Diaspora protocol but when implementing AP I'm going to change it in a way that replies are only shown to the people who can see them through the object audience. Sure this will mean some replies are not visible to all in the thread, or even the original author, but I don't see a problem with that. The original post just indicates the context for discussion, unlike in Diaspora protocol it doesn't mean that the whole thread needs to be the same for every user.

@trwnh
Copy link

trwnh commented Nov 3, 2018

Non-public replies to public posts are perfectly valid in the same way that you might make a private comment to your friend at a party, targeted only at them, not to the entire room. I don't think it makes sense to prevent this kind of usage, since it models an existing pattern. The argument might make more sense for public replies to non-public posts, but eh...

Ultimately it still comes down to who owns the post. ActivityPub's model has Actors responsible for their own posts using their Outbox. The concept of a "comment" is not really defined outside of inReplyTo. You can't delete someone else's post.

To do otherwise would require granting ownership of all replies to the OP, as explained above. That way, the OP's server is responsible for redistributing to the proper audience. That would make more sense in a "moderated comments" model as put forward in #319, where Notes inReplyTo your Note are delivered to you first and foremost, and then you respond with an Accept or a Reject (perhaps automatically, perhaps manually).

@annando
Copy link
Author

annando commented Nov 3, 2018

"ownership of replies" and deleting someone else's comment is another topic. I guess that we (Friendica) will have some things to discuss and decide at our upcoming hackathon this month.

@trwnh
Copy link

trwnh commented Nov 3, 2018

It's "another topic" but also technically the same topic, since you want to restrict changing the audience later in a thread, right? There's no real way to do that except to discard that only in your software (invalid to the model), or rewrite the audience (bad, violates user expectation). You can't stop people putting whatever audience they want on their own posts, regardless of what audience the inReplyTo post has.

@janbruns
Copy link

What about some way to roughly describe an audience, for which a server owning some post is willing to add replies to it's replies collection?

Wouldn't such a description typically be a subset of that post's audience?

@evanp
Copy link
Collaborator

evanp commented Jun 14, 2024

We discussed this in issue triage and think it has several layers. The first layer is a social one: this is an impolite thing to do to your correspondents, with the exception of tagging new actors into an existing conversation.

At the implementation level, it's not clear whether this is something that implementations should filter on, either as clients (say, by limiting the UI for replies to prevent adding broader addressees) or as federation servers (say, by rejecting activities that include broader addressees). This seems like a lot of interference on the part of implementation, without clear rules and with a lot of exceptions.

At the specification level, this seems like it doesn't belong in the specification at all.

I'm going to leave this open. I think if we decide to make a recommendation at the implementation level, it should go into a Primer page.

@evanp evanp added Waiting for Commenter Needs Primer Page Needs a page in the ActivityPub primer labels Jun 14, 2024
@evanp
Copy link
Collaborator

evanp commented Sep 13, 2024

Dropped WFC since it's been open for 6+ years.

@evanp
Copy link
Collaborator

evanp commented Oct 11, 2024

Started on this: https://www.w3.org/wiki/ActivityPub/Primer/Changing_audience_in_replies

I'll be working on it this week, and will review in issue triage next week.

@evanp
Copy link
Collaborator

evanp commented Nov 1, 2024

I forgot that I started the primer page and did a whole different analysis here:

https://www.w3.org/wiki/ActivityPub/Primer/Addressing#Changing_addressing_in_replies

@evanp evanp added Waiting for Commenter and removed Needs Primer Page Needs a page in the ActivityPub primer labels Nov 1, 2024
@snarfed
Copy link

snarfed commented Nov 1, 2024

A parallel conversation is happening in https://codeberg.org/fediverse/fediverse-ideas/issues/84

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants