Skip to content

Releases: xmtp/xmtp-js

@xmtp/[email protected]

11 Dec 18:11
6fd53b3

Choose a tag to compare

Patch Changes

  • 1f737c5: Fixed LibXMTP version reporting

@xmtp/[email protected]

09 Dec 17:43
505dca5

Choose a tag to compare

Patch Changes

  • fe6a04f: Added GroupSyncSummary export

@xmtp/[email protected]

09 Dec 17:43
505dca5

Choose a tag to compare

This release introduces new features, performance optimizations, and bug fixes. If you've been building on a previous release, this one should be a drop-in replacement. Update as soon as possible to take advantage of these enhancements and fixes.

Stream message deletions

Call streamMessageDeletions to return a stream of message IDs that have been deleted. This new stream works in tandem with disappearing messages so that developers can be notified when messages have been removed. This is a local stream that doesn't require network sync and will not fail like other streams.

To learn more, see Support disappearing messages.

Paginate the conversation list

For most pagination use cases, use the createdBeforeNs parameter for filtering and set orderBy to createdAt. This enables you to paginate against a stably sorted list. You can then perform a final sort of conversations in your app.

To learn more, see Paginate the conversation list.

Total ordered sort for message pagination

Provides the ability to filter queries for the message list by insertion time rather than by time sent. Filtering by insertion time provides a totally ordered list, which is more reliable for pagination.

To learn more, see Paginate messages by insertion time.

More details on sync

The return value of conversations.syncAllConversations is now an object that includes both the number of conversations, and the number that needed to be synced.

Use countMessages to build an unread messages badge

Call countMessages to return a count of messages without retrieving the full message list. This is more efficient when you only need the number, such as for unread message badges.

To learn more, see Count messages in a conversation.

New version properties on the client

  • libxmtpVersion: Returns the version of libxmtp used in the bindings
  • appVersion: Returns the app version configured for the client

The libxmtpVersion property can be useful for debugging or ensuring compatibility with the underlying XMTP APIs.

Note: The static Client.version property is now deprecated, use libxmtpVersion instead.

syncAll performance improvements

The syncAll method now performs the same function as before, but with significantly improved performance. It achieves this by syncing only group chat and DM conversations with a consent state of allowed or unknown that contain unread messages, rather than syncing all conversations.

The method continues to sync new welcomes and preference updates.

To learn more, see Sync new welcomes, conversations with unread messages, and preferences.

Streaming now includes catch-up messages

Streaming messages now includes all messages sent after the last sync, including those missed while the client was offline. To only stream new messages, be sure to sync with the network before starting the stream.

To learn more, see Stream new group chat and DM messages.

Welcome pointers

OpenMLS supports sending welcomes to multiple installations in a single commit. This is currently used, but each welcome is sent individually to each installation. Some of the welcomes can be very large, and the data is duplicated for every installation.

Welcome pointers introduce a new welcome message that provides a pointer to the location where the welcome data can be found. The large welcome pointer data can be sent to the server only once, and each installation can fetch that message. This is achieved using symmetric key encryption for the welcome data, with each installation receiving a message that includes these keys.

This provides a performance and scalability improvement that makes both developer implementations and user experiences smoother and faster, without requiring changes to how developers write client code.

To learn more, see XIP-74: Welcome pointers.

revokeAllOtherInstallations no longer crashes with a single installation

Calling revokeAllOtherInstallations() on an inbox with only one active installation no longer crashes with an "Unknown signer" error.

Because the method’s purpose is to keep only the current installation active, having just one installation already meets this condition. The operation now completes successfully without trying to revoke non-existent installations.

To learn more, see Revoke all other installations.

Total ordered sort for message pagination

Provides the ability to filter queries for the message list by insertion time rather than by time sent. Filtering by insertion time provides a totally ordered list, which is more reliable for pagination.

To learn more, see Paginate messages by insertion time.

More details on sync

The return value of conversations.syncAllConversations is now an object that includes both the number of conversations, and the number that needed to be synced.

Updates for disappearing messages

The disappearing messages feature has been updated to exclude expired (already disappeared) messages from queries.

To learn more, see Support disappearing messages.

@xmtp/[email protected]

09 Dec 22:01
6b36b8b

Choose a tag to compare

This release includes a new property, performance optimizations and bug fixes. If you've been building on a previous release, this one should be a drop-in replacement. Update as soon as possible to take advantage of these optimizations and fixes.

New libxmtpVersion property

The libxmtpVersion property can be useful for debugging or ensuring compatibility with the underlying XMTP APIs.

For more information on these updates, see these release notes for the Node SDK.

@xmtp/[email protected]

05 Dec 21:32
3cc462f

Choose a tag to compare

This release introduces new features, performance optimizations, and bug fixes. If you've been building on a previous release, this one should be a drop-in replacement. Update as soon as possible to take advantage of these enhancements and fixes.

Stream message deletions

Call streamMessageDeletions to return a stream of message IDs that have been deleted. This new stream works in tandem with disappearing messages so that developers can be notified when messages have been removed. This is a local stream that doesn't require network sync and will not fail like other streams.

To learn more, see Support disappearing messages.

Paginate the conversation list

For most pagination use cases, use the createdBeforeNs parameter for filtering and set orderBy to createdAt. This enables you to paginate against a stably sorted list. You can then perform a final sort of conversations in your app.

To learn more, see Paginate the conversation list.

Use countMessages to build an unread messages badge

Call countMessages to return a count of messages without retrieving the full message list. This is more efficient when you only need the number, such as for unread message badges.

To learn more, see Count messages in a conversation.

New version properties on the client

  • libxmtpVersion: Returns the version of libxmtp used in the bindings
  • appVersion: Returns the app version configured for the client

The libxmtpVersion property can be useful for debugging or ensuring compatibility with the underlying XMTP APIs.

Note: The static Client.version property is now deprecated, use libxmtpVersion instead.

syncAll performance improvements

The syncAll method now performs the same function as before, but with significantly improved performance. It achieves this by syncing only group chat and DM conversations with a consent state of allowed or unknown that contain unread messages, rather than syncing all conversations.

The method continues to sync new welcomes and preference updates.

To learn more, see Sync new welcomes, conversations with unread messages, and preferences.

Streaming now includes catch-up messages

Streaming messages now includes all messages sent after the last sync, including those missed while the client was offline. To only stream new messages, be sure to sync with the network before starting the stream.

To learn more, see Stream new group chat and DM messages.

Welcome pointers

OpenMLS supports sending welcomes to multiple installations in a single commit. This is currently used, but each welcome is sent individually to each installation. Some of the welcomes can be very large, and the data is duplicated for every installation.

Welcome pointers introduce a new welcome message that provides a pointer to the location where the welcome data can be found. The large welcome pointer data can be sent to the server only once, and each installation can fetch that message. This is achieved using symmetric key encryption for the welcome data, with each installation receiving a message that includes these keys.

This provides a performance and scalability improvement that makes both developer implementations and user experiences smoother and faster, without requiring changes to how developers write client code.

To learn more, see XIP-74: Welcome pointers.

revokeAllOtherInstallations no longer crashes with a single installation

Calling revokeAllOtherInstallations() on an inbox with only one active installation no longer crashes with an "Unknown signer" error.

Because the method’s purpose is to keep only the current installation active, having just one installation already meets this condition. The operation now completes successfully without trying to revoke non-existent installations.

To learn more, see Revoke all other installations.

Total ordered sort for message pagination

Provides the ability to filter queries for the message list by insertion time rather than by time sent. Filtering by insertion time provides a totally ordered list, which is more reliable for pagination.

To learn more, see Paginate messages by insertion time.

More details on sync

The return value of conversations.syncAllConversations is now an object that includes both the number of conversations, and the number that needed to be synced.

Updates for disappearing messages

The disappearing messages feature has been updated to exclude expired (already disappeared) messages from queries.

To learn more, see Support disappearing messages.

@xmtp/[email protected]

23 Nov 01:07
9effa2e

Choose a tag to compare

Patch Changes

  • e3779a1: Locked @xmtp/proto versions

@xmtp/[email protected]

23 Nov 01:07
9effa2e

Choose a tag to compare

Patch Changes

  • e3779a1: Locked @xmtp/proto versions

@xmtp/[email protected]

23 Nov 00:34
a554d2e

Choose a tag to compare

Patch Changes

  • 76679fc: Locked @xmtp/proto version

@xmtp/[email protected]

23 Nov 01:07
9effa2e

Choose a tag to compare

Patch Changes

  • e3779a1: Locked @xmtp/proto versions

@xmtp/[email protected]

23 Nov 01:41
7e08cd3

Choose a tag to compare

Patch Changes