Post AyTpT39zBdCy2EmNdI by jupiter_rowland@hub.netzgemeinde.eu
 (DIR) More posts by jupiter_rowland@hub.netzgemeinde.eu
 (DIR) Post #AyTpSmsNjJcTX0Q5yK by jupiter_rowland@hub.netzgemeinde.eu
       2025-09-21T19:42:56Z
       
       0 likes, 0 repeats
       
       Okay, everyone, sit down. I'll tell you a few things about Mastodon's quote-post feature that you know nothing about. Definitely not if all you know is Mastodon. Oh, and by the way, in case you don't know yet in spite of following me: The Fediverse is not only Mastodon.Mastodon has been quote-post-able for as long as it has been aroundEugen Rochko is bringing quote-posts to Mastodon. But he is not bringing quote-posts to the Fediverse. The Fediverse has had quote-posts for 15 years.It was Mike Macgirvin who introduced quote-posts to the Fediverse in July, 2010, when he launched something called Mistpark back then and Friendica today (https://friendi.ca, https://en.wikipedia.org/wiki/Friendica). That was five and a half years before Mastodon was launched.In fact, when Mastodon was launched, it immediately federated itself with Friendica and with Hubzilla, a fork of a fork of Friendica by Friendica's own creator which has quote-posts, too. So when Mastodon was launched, it immediately became possible to quote-post Mastodon toots. Not on Mastodon itself, but on Friendica and Hubzilla.Just about everything that isn't Mastodon has already got quote-posts right nowHere are a few (but not even all) Fediverse server applications that already have quote-posts:PleromaAkkomaMisskeyFirefishIceshrimpSharkeyCherryPickCatodonMitraFriendicaHubzilla(streams)ForteAnd they're all part of the Fediverse which means that they're all connected to Mastodon. People on all of these can theoretically read your Mastodon toots. And people on all of these can theoretically quote-post your Mastodon toots.Mastodon's quote-post opt-in is not a water-tight defence against being quote-postedSo you can choose not to be quote-posted. But you can only choose not to be quote-posted by Mastodon users. This opt-in does not work with the rest of the Fediverse.First of all, that's because Mastodon's quote-post feature is not compatible with anything else out there. Mastodon's developers have chosen to re-invent the quote-posting wheel from scratch. They've intentionally chosen to do so in a way that's completely incompatible with everything else out there.Their intention was to reinforce Mastodon's appearance to its own users as the one and only Fediverse and ActivityPub gold standard and to make Pleroma, Akkoma, Misskey, Firefish, Iceshrimp, Sharkey, CherryPick, Catodon, Mitra, Friendica, Hubzilla, (streams), Forte etc. look broken. It's part of their plan to keep Mastodon users on Mastodon in the wake of Mastodon's market share in the Fediverse shrinking.Also, they did not publish any specifications on their quote-post implementation, so even those non-Mastodon developers who are fast enough didn't have a chance to implement support for Mastodon's opt-in.This means that even if you've set your posts to un-quote-post-able on Mastodon, everything I've listed above can still quote-post you with no resistance.Absolute Fediverse-wide protection against being quote-posted is impossibleAnd don't get your hopes high that the day will come when nobody on the Fediverse will be able to quote-post you, whether they're on Mastodon or not. Such a setting is technologically impossible.Who says that? Mike Macgirvin says that. The guy who launched Friendica and brought quote-posts to the Fediverse 15 years ago, remember? This guy has built the Fediverse's most elaborate, most complex, most fine-grained, most advanced permissions system into (streams) and Forte.These two have reply control, the kind of which you couldn't image in your wildest dreams. I'm serious. They have permissions settings for almost everything on two or three levels, for your whole channel, individually per contact and sometimes even per post or per file or folder in the file storage.But they don't have quote-post permission settings. Because that's impossible to enforce Fediverse-wide. And even if it was possible, it'd be pointless. If they can't quote-post you, they'll copy-paste you. If they can't copy-paste you either because they're on a phone, they'll post screenshots of your toots.Mike also says, there is exactly one way to keep people from quote-posting you, and that's by not posting in public. Unfortunately, unlike what he has created, Mastodon has little between "public" and "DM", if anything.Mastodon cannot quote-post the non-Mastodon FediverseThis may be the big surprise: It has recently been discovered by chance that Mastodon's quote-post feature only works with Mastodon toots.On the one hand, Pleroma, Akkoma, Misskey, Sharkey, Friendica, Hubzilla etc. can quote-post just about everything that comes in from Mastodon. But on the other hand, no Mastodon 4.5 user will be able to quote-post anything from either of these. Or from Pixelfed or PeerTube or Loops or Castopod or WriteFreely or whatever.That's because Mastodon is looking for a quote-post opt-in. But nothing else in the Fediverse supports Mastodon's quote-post opt-in, also seeing as it's still officially in development. And it's highly unlikely that everything in the Fediverse will adopt another piece of non-standard, proprietary Mastodon tech."Quote" actually means something elseLastly, Mastodon has the audacity to call this feature "quote".A "quote" is something else. Remember forums? Like, bulletin-board forums with subforums and all? Where posts are quoted in follow-ups, entirely or only partially? That's what a quote is. That has got nothing to do with quote-posts.Why I say that there's a difference? Because I also say that Friendica has had both quotes and quote-posts.It has had them for 15 years, both quotes (which it calls "quotes", go figure) and quote-posts (which it calls "quoted shares", and which include the original author of the quoted post, complete with their profile picture and a clickable link to them, as well as a clickable link to the original post).Hubzilla has both. (streams) has both. Forte has both. And I wouldn't be surprised if other Fediverse server software had both, too.The irony is that Mastodon itself has been able to render actual quotes since version 4.0 from October, 2022. At the same time, it will continue to be unable to render any quote-posts done outside of Mastodon for the foreseeable future.#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Mastodon #NotOnlyMastodon #FediverseIsNotMastodon #MastodonIsNotTheFediverse #Pleroma #Akkoma #Misskey #Forkey #Forkeys #Firefish #Iceshrimp #Sharkey #CherryPick #Catodon #Mitra #Friendica #Hubzilla #Streams #(streams) #Forte #QuotePost #QuotePosts #QuoteTweet #QuoteTweets #QuoteToot #QuoteToots #QuoteBoost #QuoteBoosts #QuotedShares
       
 (DIR) Post #AyTpSnuXskwck0RKz2 by julian@fietkau.social
       2025-09-22T14:11:08Z
       
       0 likes, 0 repeats
       
       @jupiter_rowland Hey Jupiter, I usually appreciate your advocacy for the non-Mastodon Fediverse, but let's stick to the truth.1. The spec was developed openly, with input from the ActivityPub community: https://socialhub.activitypub.rocks/t/pre-fep-quote-posts-quote-policies-and-quote-controls/50312. Its schema was invented by GoToSocial: https://docs.gotosocial.org/en/stable/federation/interaction_policy/3. It is compatible with quotes from Misskey, Pixelfed, etc. that do not require permission (mainly self-quotes).4. There are already three other implementations in GoToSocial, Smithereen, and dotmakeup.
       
 (DIR) Post #AyTpT39zBdCy2EmNdI by jupiter_rowland@hub.netzgemeinde.eu
       2025-09-22T20:08:28Z
       
       0 likes, 0 repeats
       
       @Julian Fietkau I'm surprised to read that (streams) allegedly has FEP-e232 implemented. As I happen to have two (streams) channels myself, and as (streams) allows me to have a look at the whole source code of any activity (whereas Hubzilla only shows me that of the content), I've checked a fairly recent post of mine that includes a link. And while it does define the hashtags just like Mastodon and Hubzilla, it does not define links in a way that conforms to FEP-e232. Either that, or (streams)' implementation of FEP-e232 is newer than the software was when I sent that post.Next, I wanted to see if (streams) had its way of quote-posting changed in the last seven years or so of development and forking. I expected it to quote-post like Hubzilla, namely by turning a BBcode short code into a dumb copy of the original upon sending, but I wanted to see proof. As (streams) is a fork of a fork of three forks of a fork (of a fork) of Hubzilla that's still maintained by Hubzilla's own creator, I would have been surprised if he had changed the way (streams) quote-posts at some point on the way.So I quote-posted my own post on (streams) just to see what happens. And (streams) acted exactly like Hubzilla and not at all like described in FEP-044f on the surface. It still inserts a dumb copy.Good thing I have access to the full source code of any message on (streams). So here's what happened, namely what I expected to happen: (streams) quote-posts like Hubzilla.First of all, when I clicked the "Share" button, this short code was inserted into the post editor:[share⁠=1198713][/share]The number, by the way, is the running number of the message to quote-post on the server.Upon sending the post, (streams) automatically "expanded" the short code into the dumb copy I had expected.[⁠share author='Jupiter+Rowland' profile='https://hub.netzgemeinde.eu/channel/jupiter_rowland' portable_id='_moYLN61-o3FbP3jyThygMDf-bjF2cApXgkrwlAE77iKy19xM1_6F06V4b71eTkqqNaTUjGiN0lfw2dyn5nXRw' avatar='https://streams.elsmussols.net/xp/6b50efa4bb804860f6128bba791b74fab4a0a5e09dbcbee8d8ca77cee00f0330-6' link='https://hub.netzgemeinde.eu/item/0a1cdda5-eb1c-4a33-9574-ddd896977b4f' auth='true' posted='2025-09-21 19:42:56' message_id='https://hub.netzgemeinde.eu/item/0a1cdda5-eb1c-4a33-9574-ddd896977b4f'] ...(the source code of the original message goes here)... [/share]Both Hubzilla and (streams) render this the same way, namely with a header line above the copy that includes the profile picture of the original author, the name of the original author with a Zot/Nomad-type link to their channel/account and a Zot/Nomad-type link to the original of the post ("Zot/Nomad-type" means that [zrl][/zrl] is used rather than [url][/url] which means that the ID of an observer on Hubzilla/(streams)/Forte is attached to the link for OpenWebAuth identity recognition purposes.)At the same time, curiously, (streams) includes the line "rel": "https://misskey-hub.net/ns#_misskey_quote" and a line that starts with "name": "RE: and continues with the URL of the original message into the code for the link to the original message. The latter is identical to what Misskey and all Forkeys have in quote-posting notes in plain sight, only that (streams) only reveals it in the source code rather than in the content as well.So this part of FEP-044f is implemented, albeit concealed from most people and only happening in the code.Now, looking at the quote policy part, that looks like it could be possible to add to the Fediverse's permission champions Hubzilla, (streams) and Forte. After all, they already have comment controls with no FEP backing it (and if GoToSocial's quote policy can be made into an FEP, maybe so can (streams)' and Forte's comment controls so that they actually do blank out reply buttons on the farther ends of the Fediverse if the software on the farther ends implement support for that FEP).This could be done at three levels again. I'll illustrate this with (streams) and Forte because they're quite a bit less complex than older Hubzilla.At channel level, quote-posting (and maybe quoting as well) could be set as usually, namely to semi-public (= everyone in the Fediverse = no quote policy), restricted (= only your contacts) and only yourself. (Seriously, you don't want random passersby with no accounts to quote-post you. Even though you can allow them to comment on your posts if you dare.)"Only yourself" could be overridden at contact level by permitting certain contacts to quote-post (and maybe quote) your messages. This is actually standard behaviour on (streams) and Forte.And then there is the per-post level which would be similar to (streams)' and Forte's comment controls. These allow you to limit who may comment on a post to only your contacts and those who have already participated in the same conversation, and they allow you to turn off comments altogether.Quote authorisation would not be much different in handling from manually moderating comments from those who technically aren't permitted to comment (only that spammers don't quote-post, at least not yet, and they probably never will because that simply makes no sense). So that'd be nothing really new.Of course, this would have some limitations which come from how Hubzilla, (streams) and Forte work and from their conversation architecture.The first limitation is that you could only give certain contacts permission to quote-post your posts if you didn't give it to the whole Fediverse. Channel-wide permissions are always inherited by contact-specific permissions, and this cannot be overridden. So you couldn't generally allow everyone to quote-post your posts except for one certain contact of yours.The second limitation is that you can only control the permissions of contacts, but not of non-contacts. So you can't disallow some stranger whom you aren't connected to to quote-post your posts while everyone else is allowed.Then again, FEP-044f doesn't make either of these two possible either. It can only define who is permitted to quote-post a post, not who isn't.The third limitation is that, on Hubzilla, (streams) and Forte, comments always have the same permissions as the post that they belong to because comments always have the same owner as the post that they belong to. Basically, if FEP-044f was to be defined for each comment individually, it would have a chance of clashing with conversation containers as per FEP-171b.Here on Hubzilla, as well as from (streams)' point of view, everyone's comments in this thread are owned by me because I've started the thread. And the permissions on all these comments are defined by my post. I've seen my share of permission clashes whenever someone on Mastodon replied to a public post or a public comment with a DM, and Hubzilla overrode this by forcing the permissions of the post on that reply.In practice, this means that the quote policies of all comments would be the same as that of the post. At least that's how Hubzilla, (streams) and Forte would understand them because the concept of comments having different permissions than the post is alien to them. So if you say that I'm not permitted to quote-post your comment, but I say that anyone can quote-post my post, Hubzilla and (streams) override the quote policy that you've given your comment on Mastodon with the quote policy that I've given my post on Hubzilla, and I can quote-post you.So the actually difficult part would be to implement an exception in how Hubzilla, (streams) and Forte handle comment permissions for quote policies and make them individual for each comment rather than making comments inherit them from the post.Well, and lastly, if you permitted all your contacts to quote-post a post of yours, and you had a few more contacts, the "canQuote" section would end up monstrous. (A bit less so if you could cherry-pick those who are allowed to quote-post you on a per-post base, just like you can cherry-pick those who are allowed to see the post in the first place.) Also, I'm wondering just how well policies as per FEP-044f (and their implementations in various server applications) will work with DIDs as per FEP-ef61 which (streams) and Forte use, and I guess, so does Mitra now.#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Misskey #Forkey #Forkeys #GoToSocial #Hubzilla #Streams #(streams) #Forte #Mitra #QuotePost #QuotePosts #QuoteTweet #QuoteTweets #QuoteToot #QuoteToots #QuoteBoost #QuoteBoosts #QuotedShares #Permission #Permissions #FEP_044f #FEP_171b #FEP_e232 #FEP_ef61
       
 (DIR) Post #AyTpT6HXa029iXKxKC by silverpill@mitra.social
       2025-09-22T23:51:13.335464Z
       
       0 likes, 0 repeats
       
       @jupiter_rowland @julianAt the same time, curiously, (streams) includes the line "rel": "https://misskey-hub.net/ns#_misskey_quote" and a line that starts with "name": "RE: and continues with the URL of the original message into the code for the link to the original message. The latter is identical to what Misskey and all Forkeys have in quote-posting notes in plain sight, only that (streams) only reveals it in the source code rather than in the content as well.This is how FEP-e232 quotes are implemented.