Email or username:

Password:

Forgot your password?
Dr. Quadragon ❌

Alright, I've been thinking. As we know, the default model of conversation on the Fediverse is a tree. Threads are directed graphs, each node is allowed multiple children and *only one* parent. Kinda like a filesystem. There are also (hash-)tags, but they are a bit meta and work across all conversations.

What if we upgrade it a little bit? What if we allow **multiple parents** to each node? What if you can reply to multiple posts? I miss this feature because sometimes, when I post something, I get similar replies from different people, and I'm forced to either answer both of them (which sucks, because duplication of effort) or reply to only one and leave all others unanswered, which spawns an offshoot conversation that is basically already over. This way, conversation may feel more like putting out little fires at times. So, instead I can just add all of those in one reply, and add more as they appear.

And it's not that hard to do. Just make in-reply-to a list, not a string.

205 comments
Alexey Skobkin

@drq
This is a not so bad idea which will never be implemented.

Alexey Skobkin

@drq
Because it's not what generic user is concerned about. It's quite advanced use-case scenario.
Not to mention that it'll require re-implementing thread UI/UX in a lot of projects.

mittorn

@skobkin @drq This is strange. I using VK, which has same mechanics in messages: you can forward multiple messages, it is not direct reply and even does not notify sender, but it allows:
Citate other user's message, keeping all attachments groupped in this message, not randomly placed after it, usual citation cannot do this.
Other users may be sure that original message was sent by user, not "fake citate" and see original send time. Even if they have no rights to see original message.
And this is integrated feature, not some user-formatted citate which may differ in syntax or visual representation.
And i very missing this feature in all messengers. Yes, there is message forward in telegram, but it does not allow to make commentary, only forwards original message like repost.
In fediverse that might be very useful because you may mention message auhor anyway. Also it should keep all attachments, text, format, etc.. not respecting local instance limits to be useful. Not sure it may be implemented in mastodon...

@skobkin @drq This is strange. I using VK, which has same mechanics in messages: you can forward multiple messages, it is not direct reply and even does not notify sender, but it allows:
Citate other user's message, keeping all attachments groupped in this message, not randomly placed after it, usual citation cannot do this.
Other users may be sure that original message was sent by user, not "fake...

Alexey Skobkin

@mittorn @drq
Forwarding is another matter. It's more about embedding than replying. I advocate for it for a long time. But it's also not supported in Mastodon 🤷‍♂️ Deliberately in this case.

mittorn

@skobkin @drq Yes, but it's more useful. Also you can mention authors in forwards, allowing continue this topic in new thread or subthread.
In same time, making "multi-reply-to" will allow connect two unconnected before threads. This really not useful and hard to implement. I even do not know how we should show such thread in UI/UX.

Dr. Quadragon ❌

@mittorn
> This really not useful

Oh, it is VERY useful.

Have you heard of Obsidian?

@skobkin

mittorn

@drq @skobkin you want ddos servers? Or make #matrix@matrix.org analog in fedi?

Dr. Quadragon ❌

@mittorn It's still a directed graph. So, time helps. The latest one is where you break the loop off.

@skobkin

mittorn

@drq @skobkin also, non-tree graphs have loops. How do you want to handle it?

BigFoxBoss

@drq @mittorn @skobkin
Imagine a positive feedback loop when this "obsidian graph" would start sending a bunch of requests trying to fetch the "quote tweet" thread.
I bet it would fall apart :blobfoxowo:

BigFoxBoss

@drq @mittorn @skobkin
What if some remote server you/someone else "quote-tweeted" from is down and you can't possibly check if you got posts or not?
Also, loops in such graphs exist. Can't go way too deep, otherwise it's just gonna flood everything.

mittorn

@drq @BigFoxBoss @skobkin how to handle answers to post in this case? You already fetched replies and returned to source post again, then drop it. You may miss some answers

mittorn

@drq @BigFoxBoss @skobkin ok, we opening hell thread. Not usuall hellthread with 100500 messages, but with 1000050000. We getting all servers down because they sorting their graphs. Also anyway may turn any thread to helltread by milti-replying to helltread in it...

mittorn

@drq @skobkin really, if you want to answer to multiple posts, you need break graph connection and build new. This helps keep implementation and UX simple, but with same abilities. Maybe we ability to embed "link" not to post, but to thread. Not usually url, but some reference. So starting new thread and posting reference to old thread will make it as separate "subthread" which does not embed to original thread, but opens separately. In this case we will not have loops or stranges in UX.

Dr. Quadragon ❌

@mittorn It becomes too cumbersome then, and breaks semantics.

I got 3 near-identical or adjacent replies, goddamnit.

I need to *reply to* all of them.

Not "post a link to some message". Not "link to thread of subthreads of subthreads".

Reply. Much like I would reply to three humans standing right next to me

@skobkin

mittorn

@drq @skobkin but other in this thread do not want to see and read same subthread in multiple threads. Also, it makes reading such threads little complicated, when you see same branches many times

BigFoxBoss

@drq @mittorn @skobkin
Doesn't "mention" already do that? Like, you could also link three posts in a reply, mention and/or summarize what you're replying to.

Also, I fell like this discussion has been brought up before, I got a strange feeling of deja'vu :blobfoxglare:

Dr. Quadragon ❌ replied to BigFoxBoss

@BigFoxBoss Mention mentions people. It's all it does.

In-reply-to marks a message as a thing-that-this-message-is-a-reply-to-in-this-particular-conversation. Which is what I want.

@mittorn @skobkin

BigFoxBoss replied to Dr. Quadragon ❌

@drq @mittorn @skobkin
It's as if we're trying to crossbreed chat mechaniccs with microblogging platform.

Matrix has a thing called "discuss" when message is right clicked. It is as if some people went private with their discussion thread away from the main thread, except it's not public. If it becomes public, then it just becomes yet another thread where everyone is free to join and the whole point of "reply-to-convo" thing collapses again :blobfoxthink:

Dr. Quadragon ❌ replied to BigFoxBoss

@BigFoxBoss Errrmm... no?

What you're describing is making an offshoot thread. Which is what I'm trying to avoid.

@mittorn @skobkin

mittorn

@drq @skobkin and what if we have in other branch 2 replies to 2 different messages in thread. Ok, we break the loop. First message get answer. But second replies disappears as it already showed in another branch of thread. And... we missed answer here. Answer exist, but it unconnected now. I mean this by missing answers.
And most of users do not want big graphs. They want linear threads. Small linear threads. They like stories. They like tiktok. Both show content in linear way. Regular user will run away if see big graph

@drq @skobkin and what if we have in other branch 2 replies to 2 different messages in thread. Ok, we break the loop. First message get answer. But second replies disappears as it already showed in another branch of thread. And... we missed answer here. Answer exist, but it unconnected now. I mean this by missing answers.
And most of users do not want big graphs. They want linear threads. Small linear threads. They like stories. They like tiktok....

mittorn

@drq @cwebber @evan @Gargron @dansup @grishka
i think, we just missing forwarding feature. Not "repost" post or "reply" on it, but make reply in any thread that "forwards (attachs/embeds)" post and adds commentary

mittorn

@drq i think, we just missing forwarding feature. Not "repost" post or "reply" on it, but make reply in any thread that "forwards (attachs/embeds)" post and adds commentary

D:\side\

@drq it'd be kinda hard to pack this into a coherent and usable user interface. Even trees are apparently hard enough for support to be hit-and-miss.

And there's an easy workaround that makes this feature less attractive: canonical branches. Post one answer, post links to it in other places where you want it to be.

And links can be accompanied by a comment that explains the relevance of the link. As my experience on Stack Overflow tells me, flagging something as a duplicate of something highly abstract might not help much (I have seen an embarrassingly high number of confused responses from people asking about asynchronous returns in JavaScript when duped to a comprehensive overview of this class of issues).

You can sometimes see me reply with links to my earlier messages or my garden. That's exactly this technique at work. (Maybe establishing a canonical reply thread for each page of the garden would reduce the discussion friction, but I'm not feeling *that* adventurous yet.)

@drq it'd be kinda hard to pack this into a coherent and usable user interface. Even trees are apparently hard enough for support to be hit-and-miss.

And there's an easy workaround that makes this feature less attractive: canonical branches. Post one answer, post links to it in other places where you want it to be.

Dr. Quadragon ❌

@dside Yeah, you can post a link to a post, yadda-yadda.

Doesn't make two posts properly, semantically linked, so it won't show up if I want a digest or visualization or something.

D:\side\

@drq I hear that. But it's got to have some good utility for others to get aboard. What's been stated so far is kinda minor, considering the workaround above. And with a major migration cost of replacing a single optional field with a recordset in a new table (on an RDBMS-backed Fedi node which I'd expect to be the vast majority). That'll take some convincing.

Gregory

@drq I was thinking about this exact thing for forum-like conversations, where the OP would often reply to multiple people in one post.

As far as ActivityPub goes, `inReplyTo` can technically be an array. Current implementations won't like it though.

Dr. Quadragon ❌

Even right fucking now... @BigFoxBoss and @mittorn are asking the same things from me, and I have to answer separately, and they don't see each other's messages while posting them, and I make mistakes, and I am getting angry and GAAAHHH

This sucks!!!

mittorn

@mo @drq @BigFoxBoss how to mention particular message, not user?

Dr. Quadragon ❌

@mo You're not listening.

The idea is not to mention people. We already got mentions for that. The idea is to link messages as parents and a child.

@BigFoxBoss @mittorn

mittorn

@drq @mo @BigFoxBoss And this idea is completely wrong by design. You cannot just break loop in graph keeping structure.
Forwarding solving this because you deciding on you own which branch will continue thread, but which will just mentioned (as link, reference) keeping same stucture for all

Мя :sparkles_lesbian:

@drq and break every-fucking-thing, from AP protocol to rendering on client

@BigFoxBoss @mittorn

Мя :sparkles_lesbian:

@drq ...and not everyone are happy with complicating DB schema and client API for this

@BigFoxBoss @mittorn

mittorn

@mo @drq @BigFoxBoss So this should not be replyTo usage, just some separate field. Like "Linked posts"

Dr. Quadragon ❌

@mo Ermmm. Yes... The idea is to upgrade things to expect that.

Or upgrade = break in your vocab?

@BigFoxBoss @mittorn

mittorn

@drq @mo @BigFoxBoss Upgrade without keeping compatibility is breakage

Dr. Quadragon ❌

@mittorn An array can still hold one element. I don't see a problem here.

@mo @BigFoxBoss

Мя :sparkles_lesbian:

@drq ...and still requires to be parsed and handled as array in json

@mittorn @BigFoxBoss

Мя :sparkles_lesbian: replied to Dr. Quadragon ❌

@drq I suggest you to look at this list fedidb.org/software and estimate, how easy it would be to patch everything

@mittorn @BigFoxBoss

Мя :sparkles_lesbian: replied to Мя

@drq ...and patching everything is REQUIRED, because you can't just change types in JSON and don't handle it in the code

@mittorn @BigFoxBoss

BigFoxBoss

@drq @mittorn
I see everything being posted, since @mittorn is mentioned, but we bring up different points or angles to this discussion. It's kind of a different matter

mittorn

@drq @BigFoxBoss but in case you "multi-reply" and we filter loops, only one of messages will get reply. Otherwise we have 2 identical branches in thread (loop). This breaks structure at all

Dr. Quadragon ❌

@mittorn

> and we filter loops, only one of messages will get reply

No. Why?

@BigFoxBoss

iliazeus

@drq I've yet to see a good UI to read such "reply-to-multiple-people" conversations

Dr. Quadragon ❌

@mittorn Another crazy idea: FediFS. Mount a Fediverse thread as a filesystem.

Go Up