mirror of
https://github.com/logos-messaging/libchat.git
synced 2026-08-25 15:11:15 +00:00
A GroupV2 group can divide into branches that never converge again, and no member can tell from its own view that it happened: both halves keep a roster and an epoch number, each simply stops being able to read what the other sends, and a fresh split leaves both carrying the same members. A member that has merely fallen behind produces the same endless run of undecryptable frames, from a different cause needing a different fix, and nothing separates the two. MLS derives a value for exactly this comparison, meant to be compared out of band: at one epoch number, different epoch authenticators are a fork and identical ones are real convergence. Write it once per epoch a conversation reaches, so a run leaves behind the one thing that partitions its members.
Core
Crates in this directory will one day be separated into a separate shared repository.
They could be moved now, but it's desirable to have a monorepo setup at this time.
These crates MUST not depend on any code outside of this folder.