A GroupV2 group forks on the first member added after a voted steward election: the joiner missed the election, keeps serving the steward list from before it, and rejects the elected steward's next commit, so the group splits into branches that never converge again.
vacp2p/de-mls#147 closes that. The epoch steward re-shares the elected list once an election ends, a member left without a usable list asks for one, and a consensus session is freed as soon as its outcome is recorded.
* feat(group_v2): found a group with its initial members in one commit
* test(group_v2): size fast-config timers above transport delay
* update rev
* fix: rollback it the add_member logic
* fix one more fast_config
* feat: publish key bundles and accounts via logos delivery
* chore: clear format
* feat: use protobuf for registry
* chore: update chat proto rev
* feat: merge http registry into logos delivery
* chore: renaming chat store for contact registry
Update config
Update constructor calls
Enable groupContext for GV2
Remove test group type
Add test
temporary dep; waiting for upstream
Remove owner
Doc MLS extension type
Add ConvoMetaInfoVersion
Update infallable function docs
strongly typed metadata
Cleanup tests
Pin de-mls revision
full remove owner
* add WallClock into groupv2
* switch to main branch, remove custom type
---------
Co-authored-by: Jazz Turner-Baggs <473256+jazzz@users.noreply.github.com>
closes: #77
The C consumer story lives downstream now: logos-chat-module wraps the
client crate and exposes its own C API. The in-tree client-ffi crate has
no consumers left, and the nim bindings still target the removed
Context-based C API.
- delete crates/client-ffi (including the message-exchange C example)
and nim-bindings
- drop core/conversations' unused safer-ffi dependency plus the leftover
C artifact crate-types: staticlib on core/conversations, cdylib on
double-ratchets (neither crate has extern "C" exports)
- flake.nix: drop the default package (it built libclient_ffi.a plus its
header); keep the logos-delivery package and the dev shell
- ci.yml: drop the C FFI smoketest steps (valgrind included), the rustup
install the smoketest no longer needs, and the nix-build job that
built the removed default package
- ADR 0001: point the FFI-compatibility driver at the downstream C API
boundary instead of crates/client-ffi
Update InboxV2 to use IdentProvider
Create Full featured Provider
Introduce MlsIdentityProvider
Flatten MLSContext
Cleanup warnings until future integration PR
remove duplicate
Update account_id comments
* feat: prefix sender id
* chore: add message struct for sender info
* chore: refactor struct name for frontier
* chore: reuse duplicate test
* chore: fix clippy
* feat: use sender_id in wire
* chore: remove result
* chore: fix nix build
* chore: bump chat_proto version