The team rewriting Element as Element X is completely different to the folks who would need to make the change in Synapse to not send push to devices who are currently syncing. Agreed we should have fixed this years ago, especially as it's actually a feature in our pre-Matrix system back in 2012. There's basically a blindspot on long-lived missing serverside features like this; i've added it to a new hitlist we're experimenting with for trying to clear these up.
I offered a simple fix: delay notifications on all except the active client for 30 seconds, if a read reciept gets triggered from the active client then cancel the timer. I couldn't even get anyone in the team to even look at my solution 3 years ago.
Not sure why this feature keeps getting defered for "just about to land and things might be better after" server-side features (see how it has 7 out of 9 "dependencies" resolved) when none are needed.
I've had a couple of friend actually give up on matrix due to this. I also have to keep my phone on silent or else I can't be chatting on matrix without the constant bzzzing.
I'm also amused about the ever growing (currently at $760) bounty on this feature.
The project is a mess, which is obvious if one follows it. There is only slow progress. Instead of focusing everyone on one thing to do it right, they focus on multiple things that remain half-baked forever, e.g. multiple concurrent implementations like Synapse and Dendrite, Element and Hydrogen, Element and Element X, etc. pp. They seem to have organizational challenges, stemming from technical founders who didn’t know that it takes more than technical knowledge to build a great product. I believe they’ve learned somethings, e.g. that Element’s UI has always been crap hence Element X now, which they’ve denied for a long time. But they are surely still learning, e.g. how to be a focused and decisive leader, etc.
A project is always in large a reflection of the leaders. It’s the messy hackathon type project - not the clear and polished corporate project.
The reason historically for multiple concurrent implementations is because we're building a protocol, and multiple implementations dogfoods that - plus the different implementations service different segments. In practice, Hydrogen and Dendrite are currently deprioritised in favour of focusing on polishing Element X and Synapse. And Element Mobile is in security-maintenance mode only in favour of Element X.
Meanwhile, we massively fixed Element Mobile's UI a year ago: https://element.io/blog/an-unrecognisable-improvement-elemen... - and Element X is essentially the same UI... but on a different engine. So I'd argue that we were very aware that Element's UI was crap, which is why we fixed it. Rewriting the Element mobile apps as Element X is unquestionably the right thing to do in terms of sharing the same rust codebase between the two platforms and letting the app layer focus on UI.
Agreed that our progress has been slow, and our focus been has very broad at points. But we got there in the end, and certainly have learned from the journey (and built Matrix to be a much broader and successful heterogenous ecosystem as a result).
I'm sure your projects are all much more successful though - I'm jealous! :D
Actually, thinking about it now, the one thing I would prefer is if you could, in a 2-person room, have one participant's messages come up on the left while your own were on the right, or vice versa.