Skip to content

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:

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 of recipientNumber string with the recipientAddress 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 an unexpected_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_RESULTs returned in response to SEND messages (and the use a newly introduced id field onto all signald messages to register and retrieve the callback)
  • 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

Merge request reports