snarfed / bridgy-fed

🌉 A bridge between decentralized social network protocols
https://fed.brid.gy
Creative Commons Zero v1.0 Universal
726 stars 39 forks source link

Interpret `Undo`-`Accept`-`Follow` […] as request to disable bridging #1444

Open Tamschi opened 3 weeks ago

Tamschi commented 3 weeks ago

See https://github.com/snarfed/bridgy-fed/discussions/1440#discussioncomment-11095650: Mastodon doesn't track delivery of Create-Note activities, so Bridgy Fed should interpret Undo-Accept-Follow targeting the Accept of the Bridge's Follow as request to disable bridging (in order to better avoid desyncs where a bridged status is still present indefinitely while the original was deleted).

Originally posted by @Tamschi in https://github.com/snarfed/bridgy-fed/issues/1335#issuecomment-2445931255

snarfed commented 3 weeks ago

This is reasonable! I wonder about the UX side though. I'm confident most people on the fediverse know how to unfollow an account. Do they know how to remove a follower, though? Is this even removing the bot as a follower? Or is it something else?

I'd love to see how users do this, concretely, on a few different fediverse servers, and some guesses as to how well known it is.

Tamschi commented 3 weeks ago

I wonder too. I only saw the mention of passive support in the Mastodon docs, but I'll have to check if I can find a software that has this as explicit verb on followers.

From a cursory search I saw a personal blog (where it's not implemented) and this blog post(?) that I can't read because it combines HSTS with a recently-expired certificate. (I could probably change my system clock, but eh.) This ActivityPub issue also mentions it: https://github.com/w3c/activitypub/issues/384

If I had to design this, I'd likely make it an entry in the three-dot menu on the follower's profile and/or "x"-buttons in the own list of followers, each with a confirmation dialogue for the first time of doing this since navigating there.

Twitter does the former: Diesen Follower entfernen / Remove this follower

It seems Misskey also has the former in some form, but it's probably not working correctly for remote users: https://github.com/misskey-dev/misskey/issues/11015 (Additionally, it's implemented as Reject-Follow there, not as Undo-Accept-Follow, so Bridgy Fed should probably also handle the former to mean the same thing even though that seems to be off-spec. Maybe Undo-Accept-Follow is some kind of urban legend that's told and retold without clear origin other than implication by the ActivityStreams vocabulary 🤔).