Skip to content

Improve support for aspects/circles#8950

Merged
Gargron merged 9 commits intomasterfrom
feature-support-aspects
Oct 17, 2018
Merged

Improve support for aspects/circles#8950
Gargron merged 9 commits intomasterfrom
feature-support-aspects

Conversation

@Gargron
Copy link
Member

@Gargron Gargron commented Oct 10, 2018

Improve support for aspects (feature that is allowed to exist in ActivityPub, and is implemented in Hubzilla and possibly other implementations). Allowed recipients are explicitly listed in the audience fields.

Before: A message with explicitly listed recipients would be delivered as a DM notification to all those recipients, but only as long as those were also tagged.

After: Save silent mentions, i.e. those that appear in to/cc but not in tag for access control, do not create a notification for silent mentions, push those into home feeds instead (only if the author is followed by the recipients), and ideally mark the post as "private" instead of "direct" in the REST API.

@Gargron Gargron added work in progress Not to be merged, currently being worked on activitypub Protocol-related changes, federation labels Oct 10, 2018
@ClearlyClaire
Copy link
Contributor

Having it show as private might lead the receiving person to think every one of the author's followers are allowed to see that information.

Also, what about mentioned accounts that are not part of the audience?

@Gargron
Copy link
Member Author

Gargron commented Oct 10, 2018

  • The look of the UI does not affect internal behaviour
  • These messages are closer to private than DM in terms of UX (i.e. less personal, not to be highlighted)
  • Adding a new visibility level would be a big API change in regards to apps

Whatever happens internally, it is easier to mask as "private" in the API to get the desired UX.

@Gargron
Copy link
Member Author

Gargron commented Oct 10, 2018

Also, what about mentioned accounts that are not part of the audience?

https://github.com/tootsuite/mastodon/blob/master/app/lib/activitypub/activity.rb#L100

@trwnh
Copy link
Member

trwnh commented Oct 10, 2018

push those into home feeds instead (only if the author is followed by the recipients)

I think I understand the reasoning for this, but there is one concern: if a message is shared without a mention, as is possible in other systems, then how does a Mastodon user know to follow the sender in order to receive the message?

Typically in those other social models, a notification is generated for "x has started sharing with you". This lets you know that someone has made you part of an audience, and you can then choose to receive those posts. But because Mastodon uses a follow-first model instead of a share-first model, only follower notifications are currently generated.

My interpretation would be that there should be an "incoming share requests" section, similar to "follower requests". This "incoming" section would show either the messages themselves directly as a column, or it would show just the profiles listed with a follow button.

@Gargron
Copy link
Member Author

Gargron commented Oct 10, 2018

Typically in those other social models, a notification is generated for "x has started sharing with you". This lets you know that someone has made you part of an audience, and you can then choose to receive those posts. But because Mastodon uses a follow-first model instead of a share-first model, only follower notifications are currently generated.

My interpretation would be that there should be an "incoming share requests" section, similar to "follower requests". This "incoming" section would show either the messages themselves directly as a column, or it would show just the profiles listed with a follow button.

Not interested in that at all. It's just a venue for spam. Marketing account sends share requests to every single person in the fediverse etc etc. The idea behind aspects/circles is that you choose which of your followers you share something with, not that you just arbitrarily pick random people to share with. Non-followers do not need to be supported in Mastodon.

@Gargron Gargron force-pushed the feature-support-aspects branch from e913bef to e74bda9 Compare October 10, 2018 22:52
@trwnh
Copy link
Member

trwnh commented Oct 10, 2018

Non-followers do not need to be supported in Mastodon.

OK, this definitely matches up with my expectation. But might there be a difference between to and cc interpretations? If to is direct targeting and cc is visibility targeting, then would that logic apply only to rejecting messages from non-followers with cc: you? Or would messages to: you missing a mention still show up (in your notifications and/or your direct messages)? Related: #7394, #8067

@Gargron
Copy link
Member Author

Gargron commented Oct 10, 2018

I do not think that there is any meaningful difference between to and cc when we're not talking about a magic value like the public collection, that's why process_audience clumps them together. The deciding factor is the presence of a tag. I believe that this will work alright.

Move networking calls out of the database transaction
Unlike DMs, limited statuses are pushed into home feeds. The access
control rules between direct and limited statuses is almost the same,
except for counter and conversation logic
As those are "this person is also allowed to see" rather than "this
person is involved", therefore does not warrant filtering
@Gargron Gargron force-pushed the feature-support-aspects branch from 769e7ba to d787fd8 Compare October 10, 2018 23:33
@Gargron Gargron removed the work in progress Not to be merged, currently being worked on label Oct 10, 2018
@ClearlyClaire
Copy link
Contributor

Also, what about mentioned accounts that are not part of the audience?

https://github.com/tootsuite/mastodon/blob/master/app/lib/activitypub/activity.rb#L100

So this doesn't push the message to those users' feeds, but they are still able to see them (by viewing the thread, the poster's toots, etc.)?

@Gargron
Copy link
Member Author

Gargron commented Oct 11, 2018

@ThibG Yes, I think so.

And remove stream_entry eager-loading from Notification
@Gargron Gargron force-pushed the feature-support-aspects branch from 5fdb939 to 398c4be Compare October 17, 2018 15:06
@Gargron Gargron merged commit ddd30f3 into master Oct 17, 2018
@Gargron Gargron deleted the feature-support-aspects branch October 17, 2018 15:13
Gargron added a commit that referenced this pull request Oct 17, 2018
noellabo pushed a commit to fedibird/mastodon that referenced this pull request Sep 5, 2020
Circles are the conceptual opposite of lists. A list is a subdivision
of your follows, a circle is a subdivision of your followers. Posting
to a circle means making content available to only some of your
followers. Circles have been internally supported in Mastodon for
the purposes of federation since mastodon#8950, this adds the REST API
necessary for making use of them in Mastodon itsef.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

activitypub Protocol-related changes, federation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants