Open mackuba opened 1 year ago
Here's another case: https://bsky.social/xrpc/com.atproto.repo.getRecord?repo=did:plc:js7zoaefzg64zkvjdjqxmo6b&collection=app.bsky.feed.post&rkey=3k3gxmlyngt2l
This post has been matched by my "iOS & Mac Dev" custom feed, but it's not displaying on the site, so I checked what was going on. Apparently the author of the parent comment to this one has blocked the author of this comment a few minutes after this reply was made (they are also blocking me, but I've confirmed with someone else who isn't blocked by them that they also don't see the post).
IMHO reply-hiding should be applied at time-of-indexing, not time-of-viewing.
e.g. if B replies to A, and then A blocks B, then B's reply should stay visible, in spite of the block.
But, it A already blocks B, and B "bypasses" the block and replies anyway, then the reply relationship should not be indexed by the AppView (and therefore not show up below A's post) - but B's post should still be visible on its own (so the post itself is still indexed - pretty much the same as if B had replied to a nonexistent post).
One consideration with doing this at time-of-indexing is that it will not be well-defined which posts should be blocked: two perfectly correct indexers of the firehose could process the repositories of the blocking/blocked parties in different orders and come to different conclusions about which posts should be visible. Perhaps for those live tailing the firehose it's "well-defined enough", but this remains an issue when a new appview is coming online for the first time and backfilling many full repositories.
The current behavior prioritizes safety and well-definedness so that we don't close the door to new appviews coming online late and being disadvantaged. I wonder if we should spin this issue off into a discussion about how to handle these issues technically.
There is also a bit of a crossover here with the thread moderation proposal published here https://github.com/bluesky-social/proposals/tree/main/0001-user-lists-replygating-and-thread-moderation, because current behavior effectively implements the "Reply Deletion" solution described there, partially at least - at the moment anyone can get a reply made to them "deleted" by simply blocking the person who made the reply (the difference being that this only works on direct replies). A lot of people voiced some concerns to that proposal, as seen e.g. in this thread, for example in the context of spreading disinformation - if somone makes a post with some claims that are untrue and people start correcting them in replies, they can simply block these people and the correcting replies disappear.
I agree this needs to be fixed
While I don't have strong feelings about post hiding vs deletion, I don't think it's a bug to vanish replies that were made before blocking. On the contrary, it's a strong tool for preventing harassment. One of my big frustrations with Twitter is that I had no effective way of hiding replies by bigots, bullies, and scammers, so they would just accumulate over time.
That's annoying in that it prevents criticism of bad actors, but when it comes to things like bigotry in the replies to my posts, I don't want to have to rely on a moderation team to recognize & remove it. It's refreshing to be able to remove it myself.
In the moderation proposal pointed to by @mackuba it is said that
The simplest action in Thread Moderation is the ability to delete a reply by other users. The deleted replies will technically still exist as users can’t control each others’ data in an open network – and therefore could be found in their profile’s “Posts & replies” – but they’ll be filtered entirely from the thread by well-behaving services (much like with Blocking).
[bold font added by me]
This is not what's happening here. Posts are deleted, stop. They show as deleted in post and replies. If there is another way to access a post deleted by blocking, I am not aware of it.
I've had far too many posts disappear from BlueSky - some of them containing links and other information that had taken a fair amount of time to research.
Is it really the case that a large thread with dozens of participants can be (mostly) trashed - either deliberately or accidentally - by one disgruntled participant clicking the block button?
Also it is almost impossible to figure out who blocked and thereby deleted a thread - I have only succeeded once and it required a lot of work in my browser history. It looks as if a bad actor could quickly block and unblock and cause unlimited damage. Please tell me I am wrong.
This just happened to me as well, and it's entirely confusing. Obviously makes sense I can not view or reply to posts by a user that blocked me anymore. But it makes no sense that my reply to them (posted before they blocked me) vanishes as well, not only in the client, but also through the API (still fetchable via listRecords
, but that's not usable in the context of writting a BlueSky client).
It looks like these blocked posts are still retained by the system and there are ways to retrieve them. However, the app makes it very difficult to find these posts.
What if I need to delete the post? For example, if I accidentally posted private information?
I think most users 1) don't expect their posts to disappear upon blocking, and 2) when they notice their posts disappearing, they wrongly assume it has been deleted. This is problematic.
This thread is ignoring the fact that all tech companies are left leaning authoritarians that demand compliance from you. They are in the business of making money and libs can’t handle truth and facts that disrupt their ideological hypocrisy.
@pfrazee mentioned this is being worked on in closing https://github.com/bluesky-social/social-app/issues/1961 as a duplicate of this one. So I think convincing the devs this is a problem has been achieved. It would be nice to know in which direction they are going and maybe have people comment, constructively, before the hard work is done.
I still think it's good to remove all blocked posts from the threaded view, as it's very helpful for preventing harassment, trolling, and arguments in your mentions. I have mixed feelings about leaving the posts visible in other views, such as the Replies tab. Sometimes, I've wanted to recover the text I lost to a block because I was proud of it, and other times I've wanted to delete the post because I deserved the block 😆 and wanted to retract what I said. Thus, it would be nice if I could still access my own posts from the Replies tab. However, I think it would be best if only the owner could see such posts.
@pfrazee mentioned this is being worked on in closing bluesky-social/social-app#1961 as a duplicate of this one.
I think the duplicate he mentioned was bluesky-social/social-app#2243.
Yes, and the backend fix is here: https://github.com/bluesky-social/atproto/pull/1677
Previously, we were stripping block violating replies entirely from feeds.
This adjusts the logic such that we strip them from threads still but leave them in feeds.
That's more visibility than I would like for blocked posts, tbh.
as it's very helpful for preventing harassment, trolling, and arguments in your mentions
Apologies if I've misunderstood, but wouldn't thread muting working properly (I think there are still issues with it?) be a better solution to that problem?
If somebody is harassing me or trolling my friends, I don't want anybody interacting with that in my posts or under my replies. I don't find muting sufficient for that case, as it only protects me personally, and not very well. The current blocking behavior is one of the best things about Bluesky, and one of the reasons I'm still active there.
We need to be able to block people who blocked us.
Otherwise you get harassers sniping at you from behind blocks which they can lift temporarily.
This all needs to be addressed with carefully thought out policy rather than random code edits.
@surfdude29 I stand corrected on the duplicated issue number. This issue was only mentioned there, not declared a duplicate.
Another way to describe this feature is that direct replies require consent. This does have some disadvantages: you cannot correct or rebut a bad actor in a direct reply. However, there are alternatives such as quote posts, indirect replies (e.g. to a different comment in the thread), or screenshots. That's a reasonable tradeoff for easier prevention of harassment, in my opinion. Other social media platforms rely on moderators to clean up harassment, which is a major problem for marginalized folks who cannot trust that they have the moderators' sympathies.
That's more visibility than I would like for blocked posts, tbh.
For me, this is less visibility than I would like, but a step in the right direction… This can still cause things like someone posting some disinformation and then deleting every reply that corrects them by blocking the people who comment. It would be better to maybe do something like on Twitter, where you can manually hide some offending replies, but they're still accessible in a "hidden replies" menu if someone wants to look there. In any case, a blocked person will not be able to make any more comments.
But overall, if I'm able to see my replies on my own profile, that would be better than what we have now, because right now someone can effectively delete my post and I believe they shouldn't be able to.
For me, this is less visibility than I would like, but a step in the right direction… This can still cause things like someone posting some disinformation and then deleting every reply that corrects them by blocking the people who comment.
Your reply pretty much summarises my thinking on this exactly.
Also, in the case of rebutting mis/disinformation, quote posting alone will be ineffective too because as soon as the person quote posting is blocked, the original post is rendered invisible (unlike on Twitter where you can still tap/click through).
So in terms of combatting mis/disinformation from malicious actors – an issue that we at Bluesky need to keep in mind as the network grows, and especially in a year with so many elections taking place globally – I think the best way is probably to quote post and include a screenshot, so that the mis/disinformation being rebutted can still be seen in context, even after the rebutter/fact checker is presumably blocked.
The "hidden replies" feature available at Twitter is not sufficient for dealing with harassment, especially not if bsky intends to implement features like pinned posts. More than once, I have had to delete a pinned post on Twitter because it just accumulated harassment and hate speech over time, and moderation does not remove it fast enough. The ability to self-moderate our own posts is crucial for marginalized users.
I propose that blocked posts should always be visible to the person who posted it, but visibility to others should be restricted. Viewing other users' blocked posts should be an "undocumented, third-party" function with a lot of friction, sort of like viewing a list of people who blocked you currently is.
I wholeheartedly agree with @beholdnec: the front end should provide as much friction as possible when it comes to block posts (other than your own). I also agree with the recommendation @surfdude29 made about disinformation and other bad actors: quote post with screenshot if you need to respond.
More generally, I think the current reporting/flagging mechanisms suffice for cases like disinformation. In contrast, I think blocking should be optimized for self-moderation of things like harassment. The difference is that harassment needs a more timely and thorough response than disinformation.
Describe the bug
A few hours ago, I made two replies to someone's post (one reply to the post, then reply to my reply):
That person has blocked me 2 hours later:
Now, when I load the 2nd reply on the site, it shows up with "Deleted post" above, and the 1st reply shows up as "Post not found / The post may have been deleted". I can still see the 1st reply in
listRecords
andgetRecord
output, but I don't see it on the site… It's also not visible when I look on my profile timeline in the "Posts & replies" tab. It's like it was deleted by someone else.Someone suggested that this might be due to recent change in https://github.com/bluesky-social/atproto/pull/1378 (https://github.com/bluesky-social/atproto/issues/1374). That change was supposed to make it impossible to interact with a blocked person through the API.
However, in this case, this has affected my reply that was made before I was blocked (in fact, one which triggered the block). This means that anyone I reply to can effectively delete that reply from the site, for everyone, including me. It not only disappears for that person in that thread, but it's impossible to view it by opening a link directly or by going to my profile timeline. I don't think it should work this way - other people shouldn't be able to "delete" my comments.
If we want the AppView to enforce obeying blocks by not letting people make replies after someone is blocked, it should only apply to replies that are made after someone is blocked, i.e. it should only hide the reply if reply time (indexedAt) is > block record time (also indexedAt I guess, in case someone tries to create a backdated block record).
To Reproduce
Steps to reproduce the behavior:
Expected behavior