one more thing on the re-indexing, from PR68:
This takes advantage of set operation on roaring bitmaps that we keep per author, per message type and per decryptable by us. This way we can construct the set of whose messages of this author are box2 but not yet readable and just reindex those.
The first attempt showed a problem with the bitmap indexes where the order is not kept as (previous) messages are added. ie first message is A and the set is [A]. As a message B which is before A is discovered (decrypted) it get's added to the same set but since its receive sequence is smaller then A the set looks like [B, A] and reading the 2nd message from that set will result in processing A twice.
As a workaround I'm loading an older badger multilog index which keeps the order (the set is [A,B]). A better approach would be to use the serialized array functionality which we use for the timestamp sorting.