On this page

Changelog for PubNub Swift Chat SDK 1.0.0

## 1.0.0 *April 1, 2026* | Type | Changes | |------|----------| | **Added** | • All entities now expose `onXxx(callback:)` closure-based methods and a `stream` property with `AsyncStream`-based equivalents, replacing the previous `connect()`/`streamUpdates()` pattern.<br/>• Added `Channel.onMessageReceived()` and `Channel.onTypingChanged()`, replacing deprecated `connect()` and `getTyping()`.<br/>• Added `Channel.sendText(text:params:completion:)` with new `SendTextParams` struct. Previous multi-param `sendText()` overload is deprecated.<br/>• Added `Channel.emitCustomEvent()` and `Channel.onCustomEvent()` for publishing and listening to custom events with message type filtering.<br/>• Added `Channel.getInvitees()` to return channel members with pending (invited) status.<br/>• Added `Channel.hasMember()` and `Channel.getMember()` membership-oriented convenience methods.<br/>• Added `ChannelGroup.onMessageReceived()` and `ChannelGroup.onPresenceChanged()`, replacing deprecated `connect()` and `streamPresence()`.<br/>• Added `User.onUpdated()`, `User.onDeleted()`, `User.onMentioned()`, `User.onInvited()`, `User.onRestrictionChanged()`, replacing deprecated `streamUpdates()`.<br/>• Added `User.isMemberOf()` and `User.getMembership()` membership-oriented convenience methods.<br/>• Added `Membership.onUpdated()` and `Membership.onDeleted()`, replacing deprecated `streamUpdates()`.<br/>• `Membership.update()` now accepts optional `status` and `type` parameters alongside `custom`.<br/>• Added `Membership.delete()` for deleting a membership relationship.<br/>• Added `Message.onUpdated()`, replacing deprecated `streamUpdates()` for listening to message edits and reaction changes.<br/>• Added `Message.createThread(text:params:completion:)` returning `CreateThreadResult` with thread channel and updated parent message.<br/>• `ThreadChannelImpl` returns typed `ThreadChannelImpl` and `ThreadMessageImpl` from `update()`, `getMessage()`, `getPinnedMessage()`, `getHistory()` instead of base types.<br/>• Added `ThreadChannelImpl.onMessageReceived()` and `ThreadChannelImpl.onUpdated()`, returning typed `ThreadMessageImpl` and `ThreadChannelImpl` instead of base types.<br/>• `ThreadMessageImpl` returns typed `ThreadMessageImpl` from `editText()`, `toggleReaction()`, `restore()` instead of base types.<br/>• Added `ThreadMessageImpl.onUpdated()`, returning typed `ThreadMessageImpl` for thread message updates.<br/>• Added `ChatConfiguration.emitReadReceiptEvents` as `[ChannelType: Bool]` for per-channel-type control over read receipt event emission. Defaults to `true` except for `.public` channels. | | **Modified** | • BREAKING CHANGES: `Channel.join()` now only creates membership without subscribing or setting `lastReadMessageTimetoken`. Previous `join()` signature removed along with `JoinResult` type.<br/>• BREAKING CHANGES: `Message.reactions` changed from `[String: [Action]]` to `[MessageReaction]` with `isMine`, `userIds`, `count` per reaction.<br/>• BREAKING CHANGES: `Message.removeThread()` completion now returns `Void` instead of a tuple of remove result and optional channel.<br/>• BREAKING CHANGES: `Channel.delete()` and `Chat.deleteChannel()` now permanently delete. The `soft` parameter is removed.<br/>• BREAKING CHANGES: `User.delete()` and `Chat.deleteUser()` now permanently delete. The `soft` parameter is removed.<br/>• `Chat.emitEvent()` and `Chat.listenForEvents()` deprecated. Replaced by entity-level methods like `Channel.emitCustomEvent()` and `User.onMentioned()`. | ## 0.34.0 *January 26, 2026* | Type | Changes | |------|----------| | **Added** | • Add limit and offset parameters to whoIsPresent methods. | ## 0.33.0 *December 10, 2025* | Type | Changes | |------|----------| | **Fixed** | • Modify the entities to hold a strong Chat reference. | ## 0.32.1 *August 7, 2025* | Type | Changes | |------|----------| | **Fixed** | • Fix the isue with Membership's `setLastReadMessage` method when Access Manager is enabled. | ## 0.32.0 *August 4, 2025* | Type | Changes | |------|----------| | **Added** | • Add `ConnectionStatus` enumeration and its monitoring capabilities. | ## 0.31.0 *August 1, 2025* | Type | Changes | |------|----------| | **Added** | • Add support for channel groups. | ## 0.30.3 *August 1, 2025* | Type | Changes | |------|----------| | **Fixed** | • Update dependencies to resolve the issue with unstable hash computation. | ## 0.30.2 *June 12, 2025* | Type | Changes | |------|----------| | **Added** | • Add `autoModerationId` property in EventContent.Report. | | **Modified** | • Add PrivacyInfo.xcprivacy.<br/>• Remove unused `PubNubSwiftChatSDK_Info.plist` file. | ## 0.30.1 *May 21, 2025* | Type | Changes | |------|----------| | **Fixed** | • Update core PubNub Swift SDK dependency. | ## 0.30.0 *May 14, 2025* | Type | Changes | |------|----------| | **Added** | • Deprecate `getUnreadMessagesCount(limit:page:filter:sort:)` method in Chat interface.<br/>• Introduce `fetchUnreadMessagesCounts(limit:page:filter:sort:)` method in Chat interface. | | **Fixed** | • Fix the issue with the invalid download URL for files. | | **Modified** | • Remove code duplication from the `ChatImpl` constructors.<br/>• Add thread safety to chat mapping logic. | ## 0.20.0 *March 25, 2025* | Type | Changes | |------|----------| | **Added** | • Add async/await counterparts to existing closure-based methods.<br/>• Add `AsyncStream` counterparts for methods returning `AutoCloseable`.<br/>• Add a new Test Plan testing async/await methods and streams.<br/>• Add the new way to create a thread message. | | **Fixed** | • Provide a default `ChatConfiguration()` value in the `ChatImpl` constructor.<br/>• Provide a default value for the `limit` parameter in the Chat's `getUsers(filter:sort:limit:page:completion:)`.<br/>• Fix `PubNub.MembershipSortField` extension to handle all user sort options properly. | ## 0.12.0 *March 21, 2025* | Type | Changes | |------|----------| | **Added** | • Allow users to be invited to public conversations. | ## 0.11.1 *March 10, 2025* | Type | Changes | |------|----------| | **Added** | • Enhance entities descriptions with `CustomStringConvertible`.<br/>• Add an optional `customPushData:` parameter to methods responsible for sending text. | | **Fixed** | • Fix the issue with incorrect handling of the APNS device token.<br/>• The `description` property in `Channel` interface has been replaced with `channelDescription` to avoid conflicts with `CustomStringConvertible`.<br/>• Retain the caller object by `AutoCloseable` for each entity's non-static methods.<br/>• Add a more descriptive error message when a chat object is deallocated during initialization. | ## 0.11.0 *January 28, 2025* | Type | Changes | |------|----------| | **Added** | • Add the new `update(updateAction:completion:)`method on User entity. This method can be used to update data on the server without losing intermediate updates that might have happened in the time between when the object was last received and updated.<br/>• Add the ability to mute and unmute users on the Chat instance. There are `chat.mutedUsersManager.mute(userId:completion:)` and `chat.mutedUsersManager.unmuteUser(userId:completion:)` to mute and unmute a user, respectively.<br/>• Add the option to automatically sync the mute list by enabling `ChatConfiguration.syncMutedUsers`.<br/>• Add missing function to parse quoted message text into `[MessageElement]`. | | **Fixed** | • Fix the problem of overwriting custom data at regular intervals when `storeUserActivityInterval` is enabled. | ## 0.10.3 *January 23, 2025* | Type | Changes | |------|----------| | **Fixed** | • Fix the error when retrieving the unread messages count on the Membership instance. | ## 0.10.2 *January 14, 2025* | Type | Changes | |------|----------| | **Fixed** | • Fix the bug with messages being deleted from Message Persistence. | ## 0.10.1 *January 9, 2025* | Type | Changes | |------|----------| | **Fixed** | • Remove `createUser(user:completion:)` method from the public interface.<br/>• Add missing `reactionsActionName` computed property. | | **Modified** | • Documentation enhancements. | ## 0.10.0 *January 8, 2025* | Type | Changes | |------|----------| | **Added** | • Add `status` and `type` to Membership. | ## 0.9.3 *December 18, 2024* | Type | Changes | |------|----------| | **Fixed** | • Add missing initialization for `reactionsActionName` property.<br/>• Add missing `completion:` parameter when sending a text. | | **Modified** | • Run `swiftformat` to uplift the codebase. | ## 0.9.2 *December 17, 2024* | Type | Changes | |------|----------| | **Added** | • Add support for other Apple platforms.<br/>• Lock moderated messages from editing. | | **Fixed** | • Remove `getChannelSuggestions(text:limit:completion:)` method from `Chat` interface.<br/>• Remove `getUserSuggestions(text:limit:completion:)` method from `Chat` interface.<br/>• Wrong user suggestion source for message draft created on ThreadChannel.<br/>• Wrong type of last user activity time stored on the server (precision). | | **Modified** | • Moderation events are now sent to a channel prefixed with `PUBNUB_INTERNAL_MODERATION.`. | ## 0.9.1 *December 5, 2024* | Type | Changes | |------|----------| | **Added** | • Add third-party dependencies due to Kotlin Multiplatform usage. | | **Fixed** | • Add missing userSuggestionSource property. | ## 0.9.0 *November 6, 2024* | Type | Changes | |------|----------| | **Added** | • Add Message Draft feature | | **Fixed** | • Return nil for hard delete operations<br/>• Add missing reactionsActionName property | ## 0.8.2 *October 24, 2024* | Type | Changes | |------|----------| | **Fixed** | • Use kmp-chat dependency without pubnub-kotlin submodule | ## 0.8.1 *October 22, 2024* | Type | Changes | |------|----------| | **Fixed** | • Fix dependency issues for kmp-chat and its submodules | ## 0.8.0 *September 25, 2024* | Type | Changes | |------|----------| | **Added** | • Initial Swift Chat SDK release |

1.0.0

April 1, 2026
Added
  • All entities now expose onXxx(callback:) closure-based methods and a stream property with AsyncStream-based equivalents, replacing the previous connect()/streamUpdates() pattern.
  • Added Channel.onMessageReceived() and Channel.onTypingChanged(), replacing deprecated connect() and getTyping().
  • Added Channel.sendText(text:params:completion:) with new SendTextParams struct. Previous multi-param sendText() overload is deprecated.
  • Added Channel.emitCustomEvent() and Channel.onCustomEvent() for publishing and listening to custom events with message type filtering.
  • Added Channel.getInvitees() to return channel members with pending (invited) status.
  • Added Channel.hasMember() and Channel.getMember() membership-oriented convenience methods.
  • Added ChannelGroup.onMessageReceived() and ChannelGroup.onPresenceChanged(), replacing deprecated connect() and streamPresence().
  • Added User.onUpdated(), User.onDeleted(), User.onMentioned(), User.onInvited(), User.onRestrictionChanged(), replacing deprecated streamUpdates().
  • Added User.isMemberOf() and User.getMembership() membership-oriented convenience methods.
  • Added Membership.onUpdated() and Membership.onDeleted(), replacing deprecated streamUpdates().
  • Membership.update() now accepts optional status and type parameters alongside custom.
  • Added Membership.delete() for deleting a membership relationship.
  • Added Message.onUpdated(), replacing deprecated streamUpdates() for listening to message edits and reaction changes.
  • Added Message.createThread(text:params:completion:) returning CreateThreadResult with thread channel and updated parent message.
  • ThreadChannelImpl returns typed ThreadChannelImpl and ThreadMessageImpl from update(), getMessage(), getPinnedMessage(), getHistory() instead of base types.
  • Added ThreadChannelImpl.onMessageReceived() and ThreadChannelImpl.onUpdated(), returning typed ThreadMessageImpl and ThreadChannelImpl instead of base types.
  • ThreadMessageImpl returns typed ThreadMessageImpl from editText(), toggleReaction(), restore() instead of base types.
  • Added ThreadMessageImpl.onUpdated(), returning typed ThreadMessageImpl for thread message updates.
  • Added ChatConfiguration.emitReadReceiptEvents as [ChannelType: Bool] for per-channel-type control over read receipt event emission. Defaults to true except for .public channels.
Modified
  • BREAKING CHANGES: Channel.join() now only creates membership without subscribing or setting lastReadMessageTimetoken. Previous join() signature removed along with JoinResult type.
  • BREAKING CHANGES: Message.reactions changed from [String: [Action]] to [MessageReaction] with isMine, userIds, count per reaction.
  • BREAKING CHANGES: Message.removeThread() completion now returns Void instead of a tuple of remove result and optional channel.
  • BREAKING CHANGES: Channel.delete() and Chat.deleteChannel() now permanently delete. The soft parameter is removed.
  • BREAKING CHANGES: User.delete() and Chat.deleteUser() now permanently delete. The soft parameter is removed.
  • Chat.emitEvent() and Chat.listenForEvents() deprecated. Replaced by entity-level methods like Channel.emitCustomEvent() and User.onMentioned().

0.34.0

January 26, 2026
Added
  • Add limit and offset parameters to whoIsPresent methods.

0.33.0

December 10, 2025
Fixed
  • Modify the entities to hold a strong Chat reference.

0.32.1

August 7, 2025
Fixed
  • Fix the isue with Membership's setLastReadMessage method when Access Manager is enabled.

0.32.0

August 4, 2025
Added
  • Add ConnectionStatus enumeration and its monitoring capabilities.

0.31.0

August 1, 2025
Added
  • Add support for channel groups.

0.30.3

August 1, 2025
Fixed
  • Update dependencies to resolve the issue with unstable hash computation.

0.30.2

June 12, 2025
Added
  • Add autoModerationId property in EventContent.Report.
Modified
  • Add PrivacyInfo.xcprivacy.
  • Remove unused PubNubSwiftChatSDK_Info.plist file.

0.30.1

May 21, 2025
Fixed
  • Update core PubNub Swift SDK dependency.

0.30.0

May 14, 2025
Added
  • Deprecate getUnreadMessagesCount(limit:page:filter:sort:) method in Chat interface.
  • Introduce fetchUnreadMessagesCounts(limit:page:filter:sort:) method in Chat interface.
Fixed
  • Fix the issue with the invalid download URL for files.
Modified
  • Remove code duplication from the ChatImpl constructors.
  • Add thread safety to chat mapping logic.

0.20.0

March 25, 2025
Added
  • Add async/await counterparts to existing closure-based methods.
  • Add AsyncStream counterparts for methods returning AutoCloseable.
  • Add a new Test Plan testing async/await methods and streams.
  • Add the new way to create a thread message.
Fixed
  • Provide a default ChatConfiguration() value in the ChatImpl constructor.
  • Provide a default value for the limit parameter in the Chat's getUsers(filter:sort:limit:page:completion:).
  • Fix PubNub.MembershipSortField extension to handle all user sort options properly.

0.12.0

March 21, 2025
Added
  • Allow users to be invited to public conversations.

0.11.1

March 10, 2025
Added
  • Enhance entities descriptions with CustomStringConvertible.
  • Add an optional customPushData: parameter to methods responsible for sending text.
Fixed
  • Fix the issue with incorrect handling of the APNS device token.
  • The description property in Channel interface has been replaced with channelDescription to avoid conflicts with CustomStringConvertible.
  • Retain the caller object by AutoCloseable for each entity's non-static methods.
  • Add a more descriptive error message when a chat object is deallocated during initialization.

0.11.0

January 28, 2025
Added
  • Add the new update(updateAction:completion:)method on User entity. This method can be used to update data on the server without losing intermediate updates that might have happened in the time between when the object was last received and updated.
  • Add the ability to mute and unmute users on the Chat instance. There are chat.mutedUsersManager.mute(userId:completion:) and chat.mutedUsersManager.unmuteUser(userId:completion:) to mute and unmute a user, respectively.
  • Add the option to automatically sync the mute list by enabling ChatConfiguration.syncMutedUsers.
  • Add missing function to parse quoted message text into [MessageElement].
Fixed
  • Fix the problem of overwriting custom data at regular intervals when storeUserActivityInterval is enabled.

0.10.3

January 23, 2025
Fixed
  • Fix the error when retrieving the unread messages count on the Membership instance.

0.10.2

January 14, 2025
Fixed
  • Fix the bug with messages being deleted from Message Persistence.

0.10.1

January 9, 2025
Fixed
  • Remove createUser(user:completion:) method from the public interface.
  • Add missing reactionsActionName computed property.
Modified
  • Documentation enhancements.

0.10.0

January 8, 2025
Added
  • Add status and type to Membership.

0.9.3

December 18, 2024
Fixed
  • Add missing initialization for reactionsActionName property.
  • Add missing completion: parameter when sending a text.
Modified
  • Run swiftformat to uplift the codebase.

0.9.2

December 17, 2024
Added
  • Add support for other Apple platforms.
  • Lock moderated messages from editing.
Fixed
  • Remove getChannelSuggestions(text:limit:completion:) method from Chat interface.
  • Remove getUserSuggestions(text:limit:completion:) method from Chat interface.
  • Wrong user suggestion source for message draft created on ThreadChannel.
  • Wrong type of last user activity time stored on the server (precision).
Modified
  • Moderation events are now sent to a channel prefixed with PUBNUB_INTERNAL_MODERATION..

0.9.1

December 5, 2024
Added
  • Add third-party dependencies due to Kotlin Multiplatform usage.
Fixed
  • Add missing userSuggestionSource property.

0.9.0

November 6, 2024
Added
  • Add Message Draft feature
Fixed
  • Return nil for hard delete operations
  • Add missing reactionsActionName property

0.8.2

October 24, 2024
Fixed
  • Use kmp-chat dependency without pubnub-kotlin submodule

0.8.1

October 22, 2024
Fixed
  • Fix dependency issues for kmp-chat and its submodules

0.8.0

September 25, 2024
Added
  • Initial Swift Chat SDK release
On this page