Alert contacts using old protocol of the need to upgrade - #140
Conversation
This tiny protocol version negotiation is compatible with the Ricochet 1.0 protocol. It's a useful step to have in case there is a need to make dramatic protocol changes in the future, e.g. with message encryption. An opt-in feature protocol would be unnecessarily difficult to work with in some cases. This also allows us to treat old clients better, and maybe to send them a useful message so users know that they will need to upgrade.
|
I assume you'll put something on that URL. Right now it just redirects to Github. |
|
Alternatively, maybe putting a markdown doc in the source tree (and linking to that) would work? |
There was a problem hiding this comment.
Isn't this worthy of BUG()? Since bytesAvailable looked correct
There was a problem hiding this comment.
I think no: I assume there are all sorts of reasons for a read/peek to fail. I'm mostly only concerned if peek succeeds and then read fails, or if we get some data but less than bytesAvailable promised.
|
Iterating on the message text: Original:
Revised:
Patrick's proposal:
|
|
I like the addition about explaining explicitly that upgrading will fix things. |
|
…pgrades Ricochet 1.0.x has no way of indicating protocol issues to users, and it's not feasible to support both protocols simultaneously, given how short this upgrade cycle should be. To try to make that situation slightly less awful, this sends an evil viral spam message to existing contacts when we connect to them and they are using the old protocol. That message is sent at most once per contact, and just encourages them to visit the website for more information. I don't like this format, and I don't like encouraging users to follow links and get updates via messages from their contacts, but I think this is the best option available: it's better than all of your contacts appearing to be forever offline after the upgrade, until they happen to notice the new versions too.
296ea0f to
f41a825
Compare
|
The XXX about UI for protocol negotiation errors will be addressed in a separate PR for easier review. |
Alert contacts using old protocol of the need to upgrade
Ricochet 1.0.x clients have no way of showing an error when they try to connect to clients running the newer protocol. We decided backwards compatibility would be too much extra work in this particular case, and it's still early enough to make a hard break without inconveniencing people too much.
This is an attempt to make that hard break less hard. When an outbound connection is made to a known contact, and they negotiate the old protocol, it will send a chat message directing them to figure out how to upgrade:
That message is sent only once per contact, and only for outbound connections.
I don't like this solution, but since we currently lack a reliable way to tell users to upgrade, this seems like a step worth taking. Thoughts?