Resolve "match upstream updates to libsignalservice-java"
Closes #285 (closed)
This MR adapts the signalboost interface w/ signald to accomodate upstream changes made in signald to match the most recent version of libsignalservice-java
as of 2020-07-09, which are:
- introduced in this upstream MR: https://gitlab.com/thefinn93/signald/-/merge_requests/14
- captured as of 2020-07-09 in this MR to our fork: signald-fork!3 (merged)
Most notably, it unblocks registering new phone numbers with signal, which had become borked in the legacy signald version we were pinned to in prod.
The changes to the API are numerous and complex and shipping this is urgent to unblock adding new channels, so I am merging without a lengthy commentary.
The most notable changes are:
- updates to the type signatures of inbound and outbound signald messages (and accompanying parsing logic to convert between the two) in
app.signal.index
-- most significantly, the replacement ofrecipientNumber
string with therecipientAddress
object and the accomodation of now optional fields - accomodating a completely new interface for signald reporting changed safety numbers (which now come back in a
send_result
message containing only the untrusted fingerprint instead of anunexpected_error
message with the the body of the entire original rejected message and the fingerprint.- to accomodate this, we introduce a callback handle for
SEND_RESULT
s returned in response toSEND
messages (and the use a newly introducedid
field onto all signald messages to register and retrieve the callback)
- to accomodate this, we introduce a callback handle for
- add a new default network in dev mode so that we can run docker-compose and openvpn at the same time (often useful for testing registering new phone numbers without getting a captcha requirement)
For more details, see the commit messages below, or come back here in a few days, when hopefully I will have had a chance to write things up properly. :)
Edited by aguestuser