In general, any time a piece of state is updated in the backend, that
should be propagated to the client through signals.
In this case, when a request was accepted, the client wasn't notified,
requiring them to re-fetch the accepted requests and causing
inconsistent state between status-go and client.
applicationmetadata/ is an outer layer wrapping a payload with an app-specific metadata like a signature.
identity/ implements details related to creating a three-word name and identicon.
migrations/ contains implementation specific migrations for the sqlite database which is used by Messenger as a persistent data store.
History
Originally this package was a dedicated repo called status-protocol-go and was migrated into status-go. The new status-go/protocol package maintained its own dependencies until sub modules were removed and the root go.mod file managed all dependencies for the entire status-go repo.