Skip to content

Releases: GetStream/stream-chat-swift

4.68.0

03 Dec 13:13
Compare
Choose a tag to compare

December 03, 2024

StreamChat

🐞 Fixed

  • Fix a rare infinite loop triggering a crash when handling database changes #3508
  • Fix reconnection timeout handler not working in the token provider phase #3513

🔄 Changed

  • Minor breaking change in the test tools. Some mock classes were made internal and now require a @testable annotation #3509

StreamChatUI

🐞 Fixed

  • Fix Channel List search bar disappearing after it loses scrollability in rare scenarios #3515

4.67.0

25 Nov 17:29
Compare
Choose a tag to compare

November 25, 2024

StreamChat

✅ Added

  • Add support for channel member extra data #3487
  • Add ChatChannelMemberController.partialUpdate(extraData:unsetProperties:) #3487
  • Add ChatChannelController.addMembers(_ members: [MemberInfo]) #3487
  • Add CurrentUserController.updateMemberData() #3487
  • Exposes ChatChannelMember.memberExtraData property #3487
  • Add bounce moderation v2 support #3492

🐞 Fixed

  • Fix connection not resuming after guest user goes to background #3483
  • Fix empty channel list if the channel list filter contains OR statement with only custom filtering keys #3482
  • Fix not returning models with empty properties when the underlying database model was deleted #3497
  • Fix an issue where deleting current user in the local database cleared member data in channels #3497
  • Fix rare crashes when accessing the current user object #3500

⚡ Performance

  • Avoid creating CurrentChatUserController for reading user privacy settings which is more expensive than just reading the data from the local database #3502

4.66.0

05 Nov 16:06
Compare
Choose a tag to compare

November 05, 2024

StreamChat

✅ Added

  • Add support for system messages not updating channel.lastMessageAt #3476
  • Add support for sending system messages client-side
    #3477

🐞 Fixed

  • Fix watching channels when performing channel search #3472

StreamChatUI

✅ Added

  • Open shouldMarkThreadRead and shouldMarkChannelRead #3468

🐞 Fixed

  • Fix channel list state views not updating when the view is not visible #3479

4.65.0

18 Oct 12:06
Compare
Choose a tag to compare

October 18, 2024

StreamChat

🐞 Fixed

  • Fix a rare crash caused by missing uniqueness constraints in polls #3454
  • Fix rare crash in WebSocketPingController.connectionStateDidChange #3451
  • Improve reliability and performance of resetting ephemeral values #3439
  • Reduce channel list updates when updating the local state #3450

🔄 Changed

  • Reverts "Fix old channel updates not being added to the channel list automatically" #3465
    • This was causing some issues on the SwiftUI SDK, so we are temporarily reverting this.

StreamChatUI

🐞 Fixed

  • Unread messages divider did not appear in the message list when marking messages as unread #3444
  • Fix UI glitch in thread parent message when sending a message and scrolling #3446

⚡ Performance

  • Improve performance of presenting ChatChannelVC #3448

4.64.0

02 Oct 16:54
Compare
Choose a tag to compare

October 02, 2024

StreamChat

✅ Added

  • Add ChannelMemberListSortingKey.userId for sorting channel members by id #3423
  • Add helper functions to Poll that extracts common domain logic #3374

🐞 Fixed

  • Fix old channel updates not being added to the channel list automatically #3430
  • Keep consistent order in channel and member lists when sorting by key with many equal values #3423
    • Recommendation: Always add at least one unique key to the query's sort
  • Avoid rare optimistic locking failure by refreshing the object before saving to the persistent store #3432
  • Fix PollOption.latestVotes sorting #3374
  • Fix Poll.latestAnswers sorting #3374
  • Fix Poll updates not triggering message updates in ChannelController #3374
  • Fix Poll.latestAnswers being reset on events, causing "Add a comment" button to not update in the UI SDKs #3398
  • Fix PollVoteListController resetting the first page when loading a new page #3398
  • Fix PollVoteListController default sorting being from oldest to newest from the server response #3398
  • Fix PollVoteListQuery.pollId not limiting the votes query to the given poll id #3398

🔄 Changed

  • Deprecates PollVoteListQuery(pollId:optionId:pagination:filter:) initializer in favor of (pollId:filter:pagination:) #3381

StreamChatUI

✅ Added

  • ✨ Introducing ViewContainerBuilder, a new, easier way to customize views #3374 (Learn more by reading the docs here)
  • Add PollAttachmentView component to render polls in the message list #3374
  • Add PollResultsVC component to show the results of a poll #3381
  • Add PollCommentListVC component to show the comments of a poll #3398
  • Add PollCreationVC component to create a poll in a channel #3433
  • Add PollAllOptionsListVC component to show all the options of a poll #3435
  • Add ChatUserAvatarView.shouldShowOnlineIndicator to disable the online indicator easily #3374

🐞 Fixed

  • Fix a crash with thematic breaks in markdown #3437
  • Fix Message Actions Alert view not scrollable when the view has the exact same height as the screen #3435

🎭 New Localizations

Multiple localizations were added to Polls, for more details please check the strings file.

  • polls.subtitle.*
  • polls.button.*
  • polls.*
  • alert.poll.*
  • message.preview.poll-*

4.63.0

12 Sep 10:27
Compare
Choose a tag to compare

September 12, 2024

StreamChat

✅ Added

  • Local attachment downloads (docs) #3393
    • Add downloadAttachment(_:) and deleteLocalAttachmentDownload(for:) to Chat and MessageController
    • Add deleteAllLocalAttachmentDownloads() to ConnectedUser and CurrentUserController
  • Add unset argument to CurrentChatUserController.updateUserData and ConnectedUser.update for clearing user data fields #3404
  • Add reason and extraData arguments to ChatUserController.flag(reason:extraData:completion:) and ConnectedUser.flag(_:reason:extraData:) #3417
  • Add extraData argument to ChatMessageController.flag(reason:extraData:completion:) and Chat.flagMessage(_:reason:extraData:) #3417

🐞 Fixed

  • Fix Logger printing the incorrect thread name #3382
  • Channel watching did not resume on web-socket reconnection #3409

🔄 Changed

  • Discard offline state changes when saving database changes fails #3399
  • Deprecate Filter.notEqual and Filter.notIn #3414

StreamChatUI

✅ Added

  • Downloading and sharing file attachments in the message list #3393
    • Feature toggle for download and share buttons: Components.default.isDownloadFileAttachmentsEnabled (default is false)

4.62.0

16 Aug 13:44
c14c5a1
Compare
Choose a tag to compare

August 15, 2024

StreamChat

⚡ Performance

  • Use background database observers for CurrentUserController.currentUser, ChatChannelMemberListController.members, and ChatMessageController.message which reduces CPU usage on the main thread #3357
  • CurrentChatUserController was often recreated when sending typing events #3372
  • Reduce latency of the BackgroundDatabaseObserver by reducing thread switching when handling changes #3373

🐞 Fixed

  • Fix an issue where pending messages (moderation feature) were not visible after returning to the channel #3378
  • Fix rare crashes when deleting local database content on logout #3355
  • Fix rare crashes in MulticastDelegate when accessing it concurrently #3361
  • Fix reading the local database state just after the initial write #3373
  • Fix a timing issue where accessing channels in controllerWillChangeChannels returned already changed channels #3373

🔄 Changed

  • Made loadBlockedUsers in ConnectedUser public #3352
  • Removed Agora and 100ms related code, the recommended way to support calls is to use StreamVideo #3364
  • Run offline state sync in the background instead of pausing other API requests while it runs #3367

4.61.0

31 Jul 10:50
Compare
Choose a tag to compare

July 30, 2024

StreamChat

⚡ Performance

  • Improve performance of ChatChannel database model conversions more than 7 times #3325
  • Improve performance of ChatChannel and ChatMessage equality checks #3335

✅ Added

  • Expose MissingConnectionId + InvalidURL + InvalidJSON Errors #3332
  • Add support for .hasUnread filter key to ChannelListQuery #3340

🐞 Fixed

  • Fix a rare issue with incorrect message order when sending multiple messages while offline #3316
  • Fix sorting channel list by unread count #3340

StreamChatUI

🐞 Fixed

  • Fix message search not showing results for new search terms #3345

4.60.0

19 Jul 13:36
Compare
Choose a tag to compare

July 18, 2024

StreamChat

✅ Added

  • Add an option to configure a reconnection timeout #3303

🐞 Fixed

  • Improve the stability of the reconnection process #3303
  • Fix invalid token errors considered as recoverable errors #3303
  • Fix crashes in LazyCachedMapCollection when logging out an user 3299

🔄 Changed

  • Dropped iOS 12 support #3285
  • Increase QoS for Throttler and Debouncer to utility #3297
  • Improve reliability of accessing data in controllers' completion handlers #3305

StreamChatUI

✅ Added

  • Add support for enabling message list view animations #3314

🐞 Fixed

  • Fix Channel List not hiding error state view when data is available #3303

4.59.0

10 Jul 15:18
Compare
Choose a tag to compare

July 10, 2024

⚠️ Important

  • This is the last SDK version that will support iOS 12 as the minimum deployment target.
  • Our next release will have iOS 13 as the minimum deployment target.

StreamChat

✅ Added

  • Add support for user blocking #3223
  • [Threads v2] Add support for Threads v2 #3229
    • Add ChatThreadListController to fetch current user threads
    • Add ChatMessageController.markThreadRead()
    • Add ChatMessageController.markThreadUnread()
    • Add ChatMessageController.updateThread()
    • Add ChatMessageController.loadThread()
    • Add ChatCurrentUserController.loadAllUnreads()
    • Add CurrentChatUser.unreadCount.threads

🐞 Fixed

  • Fix user not able to connect when the user name contains a semicolon #3275

🔄 Changed

  • Add additional fields to the Equatable conformance in ChatChannel and ChatMessage #3277

StreamChatUI

✅ Added

  • [Threads v2] Add ChatThreadListVC UI Component #3229
    • Marks a thread read when reaching the bottom of the replies in ChatThreadVC
    • Marking the parent message of a thread as unread in ChatThreadVC will mark the thread as unread

🔄 Changed

  • ChatChannelUnreadCountView now shares a common view (badgeView) with ChatThreadUnreadCountView #3229

🎭 New Localizations

  • message.item.deleted
  • threadListItem.replied-to
  • threadList.empty.description
  • threadList.error.message
  • threadList.new-threads