You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Encode PastEpochDeletionPolicy as a portable, bincode-safe u64
Upstream (openmls#2051) deserializes this policy through a #[serde(untagged)] enum,
which requires a self-describing format. libxmtp persists MlsGroupJoinConfig
through bincode (non-self-describing), where untagged deserialization fails at
runtime — so on the merged tree every group's config load would error. Upstream
does not hit this because its own storage backend uses serde_json.
Restore the fork's plain-u64 encoding: serialize KeepAll as u64::MAX (not the
platform-dependent usize::MAX, which is u32::MAX on wasm32) and deserialize a
plain u64, checking the sentinel before narrowing to usize. This is both
bincode-safe and portable across the 32/64-bit boundary. The pre-8bdba6f tagged
form is dropped: the fork only ever wrote the plain-integer form.
0 commit comments