6 Commits

Author SHA1 Message Date
osmaczko
a94ba2a7e0
fix: deliver anonymous PrivateV1 messages to applications
A PrivateV1 conversation is an out-of-band X3DH intro that binds no sender
credential, so its messages carry an empty credential. The client's
`decode_sender` returns `Missing` for an empty credential, and the event
emitters dropped any message whose sender could not be decoded. A PrivateV1
conversation therefore surfaced `ConversationStarted` but never the message
content, for both the initial message and every reply.

Deliver these messages with no sender instead of dropping them:

- `Event::MessageReceived.sender` becomes `Option<MessageSender>`; `None` marks
  an anonymous PrivateV1 message.
- `ConvoOutcome` carries the conversation `class` (mirroring `InboxOutcome`), so
  the client can tell a legitimately credential-less PrivateV1 message from a
  group message that is missing one.
- A new `message_sender` helper gates the anonymous case on `class == Private`;
  a missing credential on any group class is still dropped, preserving the
  invariant that group messages must be attributable.

Covered by a new `private_v1_integration` test exercising both the inbox
(initial message) and convo (reply) receive paths.
2026-06-26 17:30:35 +02:00
Jazz Turner-Baggs
7f3da1288a
Remove keypkg generation in GroupV2 (#147)
Remove GroupV2Convo::new_pending

Flatten types
2026-06-24 07:34:52 -07:00
Ekaterina Broslavskaya
e1921b944d
remove outdated factories and inline providers from de-mls 2026-06-23 18:08:25 +03:00
Jazz Turner-Baggs
d02689c764
Add Delegate Signer and wire into Client (#143)
* Add encoded_credential to CovnoOutcome

* Add DelegateSigner

* Add test for DirectV1

* Add support for undecodable credentials

* Add docs

* Clean + fixes

* clippy fixes

* Add unit tests

* Update trait bounds
2026-06-22 10:38:17 -07:00
Jazz Turner-Baggs
c5b264c827
Add Identified Trait for convo (#138)
* Add Identified Trait for convo
2026-06-19 08:43:55 -07:00
Jazz Turner-Baggs
960d0bc119
DeMLS Integration (#134)
* Add WakeupService

* Move Id to trait

* Add GroupV2

* Add convo cache

* Add TestHarness

* Instrument call paths

* Downgrade Ciphersuite

* Update imports

* cleanups

* Add Wakeups to Client

* fix: protoc dependency for ci

* fix: nix hash

* Remove save_conversation for v2

* PR comments
2026-06-15 13:15:18 -07:00