pub fn read_group_metadata_from_dict(
mls_group: &MlsGroup,
) -> Result<Option<GroupMetadataReturn>, ComponentSourceError>Expand description
Synthesize a [GroupMetadata] from the AppData dictionary.
Returns Ok(None) if the critical immutable seeds are absent.
Encoding mirrors the sender-side synthesis in
crate::app_data::migration::synthesize_canonical_subset_for_validation:
CONVERSATION_TYPE: 4 big-endian bytes ofConversationType as i32(seeencode_conversation_typethere).CREATOR_INBOX_ID: the versionedInboxIdTLS wire form (varint(version) || 32-byte payload) — the same shape every other inbox-id-bearing component on the new path uses. Reader hex-encodes the decoded id back into the legacyGroupMetadata::creator_inbox_id: Stringslot.DM_MEMBERS:TlsSet<InboxId>with exactly two elements — matches the declaredComponentType::TlsSetInboxIdand the sender’sencode_dm_members. The writer rejects self-DMs (identical slots) up front; readers that see a 1-element set surfaceMalformedComponentValue.ONESHOT_MESSAGE: prost-encodedOneshotMessage.