Anyway, I decided to fork and make it work with v1.4.5. Enjoy https://github.com/acheong08/obi-sync/issues/19#issuecomment...
Now that's out of my system, fish is fantastic and made me realise importance of sensible defaults. I tried zsh but configuration took longer than I would have liked, and oh-my-zsh is too bloated to start instantly.
Compared to that, I have practically 0 modifications in my Fish config, apart from few aliases. I don't use fish for more than one-liners, and I never intend to. It is a very nice very fast and very lightweight way to interact with my system, which I believe was the original point of Shells in general.
Either way, glad to see it on frontpage.
signal-cli is an example of a 3rd party client which is tolerated for now: https://github.com/AsamK/signal-cli
The main problem right now is that they don't have enough developers to take care of everything, but it's not specific to centralized services (no developer == no code). If you care about it, you can develop your own client using their library (à la signal-cli).
Regarding your last paragraph: I could probably list 20 features I'd like to see in Signal. That doesn't mean I want somebody implementing them with no guarantee about how securely they are implemented. One of the main goals of Signal is to provide guarantees against dragnet surveillance, and that constraint takes precedence.
Also it is somewhat interesting that this Open Source centralised Signal server, where centralisation means you can move quicker, hasn't seen a commit in 10 months.
Compare it to Matrix Synapse https://merge-chance.info/target?repo=https://github.com/mat...
The story with the flagship clients in both spaces is very similar.
Also, I have to set a password, but also a recovery password which should not be the same... Yet, I store them together in my KeepassXC db. Why would that be? Oh, now I run into a message key, the third to store in the same db entry :)
[1] https://element.io/get-started
[2] https://play.google.com/store/apps/details?id=im.vector.app
[3] https://play.google.com/store/apps/details?id=im.vector.riot...
One password that you send to the server to authenticate. The other is a passphrase used to seed an encryption key for the data you store on the server securely in a manner the server has no access to.