Release v5.5.0
XMTP SDK v5.5.0
Message deletion
Use the new deleteMessage(messageId) method to let users delete messages they sent in a DM or group chat. Super admins can delete any message in a group chat. This is a presentation-layer feature—deleted messages are replaced with placeholder ttext, but original content remains in local databases and on the network until standard expiration.
To learn more, see Delete messages.
Control optimistic message publication
By default, publishMessages() publishes all optimistically prepared messages. Use the new noSend parameter with prepareMessage() for explicit control over when a prepared message gets published. Then, you can use publishMessage(messageId) to send a specific prepared message when you are ready, or deleteMessageLocally(messageId) to remove it. This is especially useful for sending remote attachments where you want to publish the message only after the upload succeeds.
To learn more, see Control publication of a optimistic messages.
Enriched messages
The enrichedMessages() method retrieves messages from conversations with enriched metadata automatically included. This means reactions, replies, and other associated data are "baked in" to each message, eliminating the need for separate queries to fetch this information.
To learn more, see List messages with enriched metadata.
Manual sync from other devices
When a device installation comes online, it automatically sends a request to other devices on the network to sync conversations and messages. However, in scenarios where this automatic process is interrupted, you can manually trigger a sync request using sendSyncRequest.
To learn more, see Manually request sync from other devices.
System message content type decoders
Added functions for decoding leaveGroup and deleteMessage content types. These system messages contain protocol-level data rather than displayable content, but can now be safely decoded to prevent content type not found errors.