From 681d50911d3333d2c96b2de7363c47b7ee8e0104 Mon Sep 17 00:00:00 2001 From: Peter Goodspeed-Niklaus Date: Wed, 12 Feb 2025 17:16:15 +0100 Subject: [PATCH] chore: update changelog for 3.1.0 --- CHANGELOG.md | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5574aba2c2..cc1f7537db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -219,6 +219,33 @@ it references. - crypto-ffi: use the module level function buildMetadata [WPB-14827] (2a35392) - parallel transactions are performed serially (20d47c1) +## v3.1.0 - 2025-02-12 + +### Highlights + +- Add a test case mimicking a real life bug ([WPB-15810]), demonstrating that in some cases it was possible to generate errors by swapping the ordering of two messages. +- Add a new layer of buffering to handle that situation. + + > [!NOTE] + > Decrypting a message can now potentially return a `MlsError::Other` variant with the message + > + >> Incoming message is a commit for which we have not yet received all the proposals. + >> Buffering until all proposals have arrived. + > + > Clients do not need to take any action in response to this message. + > This error simply indicates that the commit has been buffered, and will be automatically unbuffered when possible. + + If the required proposal is never delivered, however, the client will eventually desync as the commit will never be processed. Clients should be on the lookout for this case and trigger their rejoin protocol in that event. + +### Features + +- implement commit buffering (e98f0a6) +- support entity derive for tables with hex ids (235730c) +- implement basic derive macro for entity trait [WPB-14952] (7add536) + +### Testing + +- add test case for the first part of 15810 (3b41175) ## v3.0.2 - 2025-01-31 @@ -271,8 +298,8 @@ it references. - Dropped support for `i686-linux-android` target. - `CoreCryptoLogger` takes an additional `context` parameter. -- `CoreCryptoError` and its child errors have been refactored to reduce the amount of error we expose and provide explicit - errors for Proteus errors. The errors we have removed will appear under the `Other` case. +- `CoreCryptoError` and its child errors have been refactored to reduce the amount of error we expose and provide explicit + errors for Proteus errors. The errors we have removed will appear under the `Other` case. ``` enum ProteusError { SessionNotFound, @@ -280,7 +307,7 @@ it references. RemoteIdentityChanged, Other(Int), } - + pub enum MlsError { ConversationAlreadyExists, DuplicateMessage,