Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Threaded Messaging #2349

Closed
ajvsol opened this issue Sep 24, 2016 · 324 comments
Closed

Threaded Messaging #2349

ajvsol opened this issue Sep 24, 2016 · 324 comments
Assignees
Labels
A-Threads A-Timeline O-Frequent Affects or can be seen by most users regularly or impacts most users' first experience T-Enhancement T-Epic Issue is at Epic level Z-Labs Z-Mozilla

Comments

@ajvsol
Copy link

ajvsol commented Sep 24, 2016

Extending the Quote functionality to allow for threaded messaging.

This could be a simple 'Quote 2.0'-style like WhatsApp where the quoted text is hyperlinked and when clicked makes you scroll up to their message:
WhatsApp Quote-Reply

Or the more sophisticated Threaded Messages panel like Mattermost:
Mattermost Threaded Messaging

Perhaps allowing for both could be done by having the Threaded Messages panel open when you left-click on the 'reply' part of the Quote 2.0 message:
WhatsApp Quote-Reply

Or by having 'Message Thread' popup as an option in the context menu to allow opening the Threaded Messages panel:
WhatsApp Quote-Reply

@ara4n
Copy link
Member

ara4n commented Sep 24, 2016

The plan is to do REALLY good threading in Riot. There's a lot of work on this currently on the Matrix spec, backend, and we're starting work on the frontend next week. matrix-org/matrix-spec#411 is the design bug for this (although there's nothing there yet). I'll keep this one around too. Thanks for the overview of what other folks are up to here!

@ajvsol
Copy link
Author

ajvsol commented Jan 19, 2017

Looks like Slack have implemented this now as well.

Threaded messaging

Cool UI:

Threaded messaging

And an overview page:

Threaded messaging

@clopez
Copy link

clopez commented Mar 31, 2017

flowdock also implements threaded conversations in a nice and very usable way

https://www.flowdock.com/help/chat

@ghost
Copy link

ghost commented Aug 11, 2017

Twist from creators of Todoist uses the very interesting concept of threaded channels:

In these channels every message must be in a thread, and it makes conversations much more organised than a continuous stream of messages.

It's the modern version of forum, except you get the benefits of organisation and don't miss out on integrations, mentions, presence, bots etc.

@richvdh
Copy link
Member

richvdh commented Sep 21, 2017

this is not p1.

@markwooff
Copy link

I believe this should be a p1 issue, almost all other chat platforms have some sort of implementation of threaded messages. Would be happy to assist in the development of this!

@colans
Copy link

colans commented Oct 5, 2017

I see this as more of a nice-to-have. Slack didn't even have it for a while. I'd say element-hq/element-meta#347 is more important as there's currently no way to reset the message pointer, which most other systems have had for a while.

@britthurley
Copy link

I definitely see this as a p1, not a nice to have. Constant noise is a major complaint for utilizing chat platforms in business settings, and threading cuts down on that noise by grouping conversations and allowing a user to essentially ignore it. This was a major improvement in Slack, and most people who have used threaded messaging do not want to go backwards.

@tysonclugg
Copy link

I'm evaluating Riot.im for use at my work and with a couple of NPOs that I'm involved with, but sadly the answer is a firm NO until 1st class threading (like Flowdock, unlike Slack) is implemented. 1st class threading means each message can be it's own thread, and each reply has all chat features available. Slack screwed this up, you can't add attachments to thread replies etc.

@sunjam
Copy link

sunjam commented Dec 7, 2017

Hi, I just want to say that I am also evaulating Riot for an organization... this feature is critical in making the move to this cool software. I'll certainly be watching for updates. Cheers

@chaoticbear
Copy link

Also, adding my experience, that when trying to convince groups to use Riot instead of Slack, threading was sited as the reason to stay with slack. And I can't disagree, noisy topics can be a real pain. But I'd really like to move to an open source option with end to end encryption like Riot

@andrewperry
Copy link

andrewperry commented Jan 29, 2018

#metoo

@vlcek
Copy link

vlcek commented Feb 6, 2018

For our organization is also a very important feature. Without it is almost unusable for us.

@ptman
Copy link
Contributor

ptman commented Feb 12, 2018

I've heard a lot of good about threading in Zulip, but it might be hard to implement in Matrix due to the focus on rooms instead of topics

@MurzNN
Copy link
Contributor

MurzNN commented Feb 12, 2018

Yes, Zulip is interesting solution for threads in chat, but the problem that topic is obligatory field - this is not hard to implement, but this will got problems for people with free chatting (offtopic chats). Maybe good solution will be do this feature at per-room basis, to require all messages with topic only on specific rooms.
But as for me - Slack implementation of threads is more useful for base functional, because we can convert already posted message to thread, missing feature is only group/move several already posted messages to the thread.

@smacz42
Copy link

smacz42 commented Mar 1, 2018

I'm surprised that no one has pointed to Microsoft Team's implementation of threaded conversations. It's nothing to write home about, but it's good to have to keep different conversations separate.

Just wanted to point out another competitor that has that implemented.

@dessalines
Copy link

So far mattermost has this down .

Has there been any movement on this?

@ptman
Copy link
Contributor

ptman commented Apr 27, 2018

someone is working on replies, is it @t3chguy ?

@Julian-Dumitrascu
Copy link

Mattermost

Or rather like in Reddit or Medium.

@hackmybeer
Copy link

Hey people. Does anyone know, when this feature is going out of beta and also into the mobile app? It’s the only thing that’s holding us back from using it.

@Daiges
Copy link

Daiges commented Mar 5, 2022

Hey people. Does anyone know, when this feature is going out of beta and also into the mobile app? It’s the only thing that’s holding us back from using it.

I don't know when it's coming out of beta, but you can already enable it in the mobile app (I'm using v1.4.2 from F-Droid) by going to Settings > Labs > Enable Thread Messages

@hackmybeer
Copy link

hackmybeer commented Mar 5, 2022

Hey people. Does anyone know, when this feature is going out of beta and also into the mobile app? It’s the only thing that’s holding us back from using it.

I don't know when it's coming out of beta, but you can already enable it in the mobile app (I'm using v1.4.2 from F-Droid) by going to Settings > Labs > Enable Thread Messages

Thanks for the fast replay! (:
But that doesn’t work on iOS, does it?

@Daiges
Copy link

Daiges commented Mar 5, 2022

Hey people. Does anyone know, when this feature is going out of beta and also into the mobile app? It’s the only thing that’s holding us back from using it.

I don't know when it's coming out of beta, but you can already enable it in the mobile app (I'm using v1.4.2 from F-Droid) by going to Settings > Labs > Enable Thread Messages

Thanks for the fast replay! (: But that doesn’t work on iOS, Idols it?

I don't have an IOS device, but it looks like it should be available as of 1.8.0 on IOS:
https://github.com/vector-im/element-ios/releases.

The app store lists 1.8.3 as the current version:
https://apps.apple.com/us/app/element-messenger/id1083446067

So I imagine you can enable it in the same place

@dead10ck
Copy link

dead10ck commented Mar 5, 2022

It's possible to enable in Android as well in the labs settings, and it seems to work great in the little I've used it. Though from a user perspective it's not much use until it's on by default for everyone. Otherwise, the only people who use it are people who know about it and go looking for it.

@sandstrom
Copy link

sandstrom commented Mar 7, 2022

I've read through most of this thread.

It seems like Matrix/Vector is (so far) going for the "Slack-style threads", and not the "Twist style threads", is that a correct understanding? (cannot find any screenshots or design doc)

As others have pointed out, it would be great if we could (optionally) make rooms threads-only:

For now I guess we'll be staying with Twist.

@lboklin
Copy link

lboklin commented Mar 8, 2022

Threads-only rooms would basically be spaces with threads-as-rooms, only with a magnitude more associated MSCs. Just an observation

@Biep
Copy link

Biep commented Mar 8, 2022

Yes. I wrote a proposal for that, which magically disappeared. A short summary is here.

@lboklin
Copy link

lboklin commented Mar 8, 2022

I believe they've fully committed to the idea of adding threads to the spec and basing it on replies. I do not agree but the door seems rather closed on further discussions about this. The arguments against threads-as-rooms boiled down to

  1. performance issues with many rooms
  2. backwards-compatibility

Now (1) sounds like a more general problem to me and (2) hasn't stopped reactions or spaces from being implemented. But I digress - moaning about it isn't likely to change their decisions.

@t3chguy
Copy link
Member

t3chguy commented Mar 8, 2022

adding threads to the spec and basing it on replies. I do not agree but the door seems rather closed on further discussions about this.

They aren't based on replies, they're based on relations, they fallback to replies so any client with handling for replies will see threads as replies until they add threads support. (Reactions, Edits & Replies are all based on relations)

@lboklin
Copy link

lboklin commented Mar 8, 2022

adding threads to the spec and basing it on replies. I do not agree but the door seems rather closed on further discussions about this.

They aren't based on replies, they're based on relations, they fallback to replies so any client with handling for replies will see threads as replies until they add threads support. (Reactions, Edits & Replies are all based on relations)

But that removes point (1) in that case, because it's not backwards compatible any more than threads-as-rooms. With throoms you could also show replies in the thread-room as replies in the original room.

Edit: or actually, more properly simply show them in the original room, not as replies but as normal messages, perhaps with a little notice that it's from a thread and with a link to the relevant room. That way, a client not implementing throoms would lose nothing while one that does sees more organised conversations.

@t3chguy
Copy link
Member

t3chguy commented Mar 8, 2022

It doesn't touch the performance of rooms in the slightest, so does not remove point (1).
Threads-as-rooms is inherently not backwards compatible given that the messages move into a different room that old unsupported clients will not be participating in, thus never receiving.

Edit: or actually, more properly simply show them in the original room, not as replies but as normal messages. That way, a client not implementing throoms would lose nothing while one that does sees more organised conversations.

Duplicating all messages between the thread room (throom) and the parent room is horrific and will create a potential for edits/redactions to get desynced between them.

@lboklin
Copy link

lboklin commented Mar 8, 2022

It doesn't touch the performance of rooms in the slightest, so does not remove point (1).

Sorry - obviously I meant to refer to point (2).

Duplicating all messages between the thread room and the parent room is horrific and will create a potential for edits/redactions to get desynced between them.

I was thinking of a more sophisticated fallback than copying the events, using shared events between rooms or aggregate timelines.

@lboklin
Copy link

lboklin commented Mar 8, 2022

Given that the backwards-compatibility of threads-as-replies rely on MSCs for relations (correct me if I'm wrong), I think it's fair to compare it to backwards-compatibility of throoms + an MSC for shared events between rooms or aggregate timelines. The events in the original room could be references to events in the thread room, creating no duplication and perfectly integrating with the throoms model where you probably want the ability to see events from sub-throoms in the main room.

@Julian-Dumitrascu
Copy link

Julian-Dumitrascu commented Apr 1, 2022

Under the advanced settings of a space I've opened the developer tools, then the settings explorer. I've changed the default value of feature_thread from "false" to "true". I've pressed the button Save setting values and the Windows app restarted. But I haven't reached the goal of enabling threaded messaging. (When I open again feature_thread, the code is unchanged.) Where have you published instructions on how to do this? Not here.

@t3chguy
Copy link
Member

t3chguy commented Apr 1, 2022

Use develop.element.io then go Settings > Labs > Threaded messaging

@Julian-Dumitrascu

This comment was marked as off-topic.

@t3chguy
Copy link
Member

t3chguy commented Apr 1, 2022

That is off-topic for this issue.

@t3chguy
Copy link
Member

t3chguy commented Apr 13, 2022

Threads are now in Beta as of 1.10.9
Further development ongoing in smaller issues

@t3chguy t3chguy closed this as completed Apr 13, 2022
@grinapo
Copy link

grinapo commented Apr 13, 2022

@t3chguy Could you, or anyone please also link the latest spec used as a base of the implementation? There are way too much comments to find it easily. Thanks!

@t3chguy
Copy link
Member

t3chguy commented Apr 13, 2022

matrix-org/matrix-spec-proposals#3440

@andrewperry
Copy link

andrewperry commented Apr 13, 2022

Threads are now in Beta as of 1.10.9 Further development ongoing in smaller issues

The biggest problem I have with threads (and raised independently by at least one colleague), is that it becomes very difficult to follow the conversation on a thread if someone comments on the thread a day or two later - their response gets lost and doesn't have the same immediacy as when something is on the 'timeline'. If the message appears in the usual 'timeline' like a quoting reply, as well as being able to browse the thread, then that will be great! If it doesn't, then it will be as painful as Slack etc.

Sadly, the way I understand the intended implementation from the front-end side (element-hq/element-meta#3), the intention is for anything on a thread to NOT show in the 'timeline', by design. 😢

@turt2live
Copy link
Member

Please open new issues for further discussion about threads :)

Locking this as resolved in the meantime.

@element-hq element-hq locked as resolved and limited conversation to collaborators Apr 13, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A-Threads A-Timeline O-Frequent Affects or can be seen by most users regularly or impacts most users' first experience T-Enhancement T-Epic Issue is at Epic level Z-Labs Z-Mozilla
Projects
None yet
Development

No branches or pull requests