I agree, on the short run this is not very important if we lose it while migrating on the chat component.
However on the medium to long run, I do believe it is quite important. It is one of the most used feature on the chat currently, and triggers reactions that would not otherwise be sent as plain messages I believe. I makes the chat a friendlier place.
By Alexandre on 2018-03-21T14:56:11 (imported from GitLab project)
@alexbourlier I need some time to asses that. There is an open debate in the community regarding how to fasten attachments to messages, but as soon as I've done some research I'll come back and let you know.
Sorry for the delay @alexbourlier. After some investigation it seems the most likely solution right now would be to go with XEP-444. I don't have an estimate and estimating this will take some time. I also feel we should prioritise other tasks first but of course you have the last word. What do you think?
@alexbourlier Talking with @MattJ and @jbpasquier I got the impression that RAI issues needed to be focused on, but that's just the impression I got. Of course it's not something that prevents paving the path for others meanwhile. That said, I'm happy to take on this one. Let me look up a last couple of things I need to check and come back with an estimate.
Actually I just heard from the Movim author. They are using XEP-0444, which I just re-reviewed.
The good news is that sending reactions is very very easy. And there is no server-side work required.
What is going to mess things up is displaying the reactions. Using the approach in XEP-0444, each reaction is represented as a separate message, and they are aggregated by the client. It's going to add to the "invisible messages" problem that currently breaks Converse.js history sync.
I'd recommend that solving history sync is prioritized first. When we have reliable history, then it should actually be fairly easy to build reactions on top.
XEP-0427 is my preferred solution, as it provides server-side aggregation which I think will be more reliable than client-side aggregation. With client-side aggregation there is the potential for bugs where different clients show different reactions (especially when reactions and the original message span a long period of time).
Consider someone sending a reaction to a message that happened months ago. The client would need to count through months of history messages to determine the correct reactions to show for the original message. On the server-side (as in XEP-0427's approach) it would be simple to just increment a counter as the reaction is entered into the archive.
But XEP-0427 is more work to implement on the server side, and the protocol is not exactly finished (there were some disagreements about the best way to organize the counts... reactions are not the only use-case for this aggregation feature). Of course if we wanted to go that route, we can just forge the path as we go (implementation experience is a good way to get XEPs updated).
The reality is that XEP-0444 is probably "good enough". Most reactions happen within a short period of time, and if Converse.js is reliably syncing history then there should be no problems, in theory... :)
So we're basically saying that this issue in its basic version is somewhat trivial, but we'll bump into our history issues even more often with it being activated.
Did anyone talked to JC Brand about the history issue? I'd love his recommendation
@manv after a long discussion with @alexbourlier we said G︎ for this one. Are you able to give us an estimation on when it could be delivered ? Hopefully @Berengere should bet on it as well. It's clear we really need to have this on Hubl