Future for list and conversation addressing? #812
Labels
No labels
approved, awaiting change
bug
configuration
documentation
duplicate
enhancement
extremely low priority
feature request
Fix it yourself
help wanted
invalid
mastodon_api
needs docs
needs tests
not a bug
planned
pleroma_api
privacy
question
static_fe
triage
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: AkkomaGang/akkoma#812
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
There are two funny addressing (and in one case visibility) mode inherited from Pleroma which afaict are not and never were supported in any frontend. At least one of them is actually broken in practice (yet nobody complained further supporting the lack of users) the other one i just haven't tested yet.
Should we try and fix those up (implement support in some frontend), or just yeet them?
List addressing and visibility
Already alluded to in #778.
Originall introduced in https://git.pleroma.social/pleroma/pleroma/-/merge_requests/1113
This is both an addressing mode and a visibility setting. Yet almost all code dealing with visibilities doesn’t acknowledge the existence of
visibility="list"
, which i’m sure leads to some funny interactions and bugs.It appears to be a shortcut to address a(n effectively private) message to all users previously added to a private list, but recipients don't know who else is on the list so replies to that message probably end up as individual DM threads. Tbh this doesn’t seem very useful to me.
Testing this on current Akkoma in practice shows that:
imho this is better off just being purged entirely
Conversation Addressing
Fortunately, no visibility mode was added for this.
Pleroma implemented Mastodon’s conversation API in https://git.pleroma.social/pleroma/pleroma/-/merge_requests/1119.
A few months later Pleroma decided to add some extensions to this API; quoting https://git.pleroma.social/pleroma/pleroma/-/merge_requests/1535:
However again there are no known users of those extensions; akkoma-fe still exclusively uses the deprecated direct messages timeline anyway.
For unfathomable reasons this also entailed duplicating existing MastoAPI endpoints into the
/pleroma//
API namespace and also duplicating controller and API spec code for those.The third extension imho makes quite a lot of sense and probably still works as intended. I’d like to keep this as it should improve things for the eventual switch away in akkoma-fe from the deprecated dm timeline.
I haven't tested anything for this yet, but given how this conflicts with normal DM usage and MastoAPI requirements i strongly suspect point 1 and 2 are also broken by now (and again there aren't any users of the extended interface who might notice the extensions breaking).
Point 4 was implemented by way of a
in_reply_to_conversation_id
parameter when creating a post, which maybe still works given there are at least tests for it. Imho this isn’t a great way to implement it though since it interacts with the visibility and addressing settings of a post in non-obvious ways. Maybe can be kept, maybe not worth the hassle, i’m not sureThis sounds like what people sometimes refer to as Diaspora Aspects, or Google+ Circles? I've seen people talk about it, but I don't remember Akkoma people strongly wanting it. If the code were in a working state, maybe it would be worth the hasle to change Akkoma-fe to support it, but from what I understand, this is not the case.
It sounds like a lot of work to get it fixed as it currently is, so yes, removing is probably the better choice.
If someone does want it back, it may very well be easier to reimplement, rather than to try fixing something which was never properly working in the first place.
This sounds a lot like how Streams and Friendica work by default? Honestly, I think this makes more sense than the current reply-to-own-followers, bc this makes the OP the owner of the conversation, which I think gives a lot of advantages. Personally I like this way more, but that doesn't mean the current code is really fit for it.
When done right, this could mean;
as:public
). Or, if it's public, someone who replies could add their follower collection to it so that the instances of their followers also know the whole conversation.I think that would be very powerfull, but I don't know if the current code is even close to that? Or if other people even think this would even be an improvement on how conversations currently go?
Conversations are always direct messages iiuc meaning followers won’t be implicitly addressed either way.
In theory threads won’t break since all participants are explicitly addresses — but remote servers aren’t aware of the conversation properties treat this as regular DMs and might accidentally or intentionally drop some participants.
What you seem to describe might better relate to acting on the already existing
context
AcitivtyPub property? This will work regardless of DM or not.E.g. creating a new message in the context without replying to a particular post; subscribing to a context (requesting from the context host to forward all messages to the subscriber).
As for authorising replies i think there was a FEP for that.
Wow, I think I was assuming too quick due to the name. This is indeed very different than what I was assuming 🤐 (What I was thinking is "Conversation Containers" in the Streams repo. But that's very different indeed, and indeed uses
context
). This vaguely rings a bell, though. These were not really used because it was deemed too complex andChatMessage
was eventually introduced, see https://git.pleroma.social/pleroma/pleroma/-/merge_requests/2429 I rememberedChatMessage
being an alternative to something else, but I didn't really know what or that there was actually implementation of the thing it was an alternative to. Now I know.Reading the commits, the only thing these "Conversations" do is showing DM's in a slightly different timeline. It seems Pleroma wanted to make something more of this and that's why they got too complex and
ChatMessage
was introduced. Removing the complexity seems like a good idea then. It was deemed not suitable, so we will probably get into the same problem if we try to keep and support it as-is.When I check current Masto-fe on Akkoma, it first fetches the conversations with
/api/v1/conversations
. When you click one of the conversations, it opens a thread. A thread is generally fetched starting from a specific status. When openening a thread, this status is marked as being the one selected. This is the same here, so the id of the status is used, not the id of the conversation, using/api/v1/statuses/<status_id>/context
.Afaict, Mastodon doesn't have a separate endpoint to query a "conversation" on conversation id (see https://docs.joinmastodon.org/methods/conversations/ ). So I'm not sure how useful it really is then to keep even that one. Do we want to remove the dm tl for something else? Will using conversation id really make more sense than using status id?
At any rate, it seems a good idea to clean (ie "yeet") these things up (both "List addressing and visibility" and "Conversation Addressing") if someone can spend the time for it. As far as I'm concerned, I wouldn't mind even the "3. You can get statuses by conversation id" extention be removed, but if someone thinks it's useful, I don't mind it being still there. The rest gone will already be a nice clean up.