Upcoming version of Mastodon (2.4.1) will have a delete & redraft function.
@Gargron Interesting. If boosted, does the rewritten show up? Or do boosts disappear?
@HexAllen Also, likes and repiies and other feedback. It's crucial to save those if you're correcting a typo or a mistake. Don't want to remove an old post that's already got feedback on it just to correct a typo.
@drequivalent The abuse problem that Gargron points out is spot on though. It looks liked this is true delete, just reloads your deleted text back into the editor window.
@HexAllen Want to prevent abuse - show diffs between old version and the new, like Gitlab does. What's the actual problem here?
@HexAllen Kinda like this, but more compact. Red is what's deleted, green is what's added. This way you can tell if it's a legitimate edit or a scumbag trying to fool you.
Diff would be indeed an elegant way of dealing with this but as far as I know there is no concept of revisions (having different versions) in toots. Gitlab can do that because underneath, git is a repository with version control.
Introducing VC would be a radical change in either OStatus or ActivityPub I think. And to be exhaustive, you would also need to implement VC also on media which would have a significant impact in storage requirements.
@HexAllen
@alfajet
@Gargron @HexAllen Valid. Although, I don't think the impact will be all that significant really - people don't edit posts all that often.
And, it doesn't have anything to do with radical changes to AP: the standard already supports Updates and Partial updates: https://www.w3.org/TR/activitypub/#update-activity-outbox
https://www.w3.org/TR/activitypub/#update-activity-inbox
So, in essence, you just send an updated object, an on receiving end you just figure out a diff and show it as needed. You can even just do it dynamically.
You don't even need a full-blown VC, you can just show a diff between the original post and the most recent version of the message, I'm going to go on the limb here and say that it will be sufficient for most cases.
@drequivalent
Good point. But unless the receiver has kept the previous version in cache, they won't be able to perform a diff when they receive the update.
The two options are
1. to rely on the client to manage this (compare to previous content).
2. to implement some form of VC in ActivityPub. As you say it can be minimal: just keep current and last.
1. would be less disruptive but less reliable I think whereas 2 would have knock on effect on all platforms relying on AP.
@Gargron @HexAllen
@drequivalent
I might be wrong but I don't believe the client application keep indefinitely all status in cache. I'd imagine that if the user request access to an old status , the client will refetch a fresh copy from the server. So if an update applies to an uncached status, I guess the receiver will get an update with the new content but as the previous version is no longer cached, it won't be able to preform a comparison.
@drequivalent
That was my point 2 => a change in ActivityPub.
@drequivalent @alfajet @gargron @HexAllen https://github.com/w3c/activitypub/issues/188 https://github.com/w3c/activitypub/issues/155 might be worth re-exploring
Sorry, I don't have time to follow up on this today though
@alfajet @drequivalent @gargron @HexAllen They could be revived, if you'd like to bring them up in the SocialCG call tomorrow https://www.w3.org/wiki/SocialCG/2018-06-06
@alfajet @drequivalent @gargron @HexAllen If you aren't yet a member of the SocialCG, you can join through the join button on the right of https://www.w3.org/community/socialcg/
@cwebber
Thanks for the suggestion! I am not (yet?) a member and can't join tomrrow's call as I'll be working at that time I am afraid.
@drequivalent @Gargron @HexAllen