Skip to content

Releases: GetStream/stream-chat-swift

4.75.0

26 Mar 14:53

Choose a tag to compare

March 26, 2025

StreamChat

🐞 Fixed

  • Fix draft local attachments erased when the draft updated event is triggered #3625
  • Fix background tasks not running in IOSBackgroundTaskScheduler sometimes #3628

StreamChatUI

🐞 Fixed

  • Fix composer content not cleared when draft deleted event is triggered #3626
  • Set ColorPalette.text to titleLabel in ChatChannelListItemView #3629

4.74.0

14 Mar 14:29

Choose a tag to compare

March 14, 2025

StreamChat

✅ Added

  • Add MarkdownParser for parsing and styling markdown strings #3590
  • Add Fonts.title2 for supporting markdown headers #3590
  • Add channel reads pagination support #3613
    • Add ChatChannelController.loadChannelReads(),
    • Add ChatChannelController.loadMoreChannelReads()
    • Add Chat.loadMembers()
    • Add Chat.loadMoreMembers()

🐞 Fixed

  • Fix background task warning by making task tracking thread-safe #3604
  • Fix an issue where ChatRemoteNotificationHandler can lead to persistent store's data inconsistencies #3601
  • Fix the order of channels when using ChannelListSortingKey.default 3615
  • Fix channel membership not updated when the current user adds itself to a channel #3618

StreamChatUI

🔄 Changed

  • Feature rich markdown rendering with AttributedString #3590
    • Note: Markdown is rendered only on iOS 15 and above. On iOS 14 and below markdown is rendered as plain text
    • Rename MarkdownFormatter.format(_:) to MarkdownFormatter.format(_:attributes:) for allowing to pass in current text attributes

💥 Removed

  • Remove MarkdownStyles.linkFont because link attributes are ignored by UITextView. Update ChatMessageContentView.textView.linkTextAttributes instead #3590
  • Remove DefaultMarkdownFormatter.markdownRegexPattern because regular expression based validation was removed #3590
  • Remove MarkdownFormatter.containsMarkdown(_:), optionally validate input strings in MarkdownFormatter.format(_:attributes:) instead #3590

4.73.0

28 Feb 05:41

Choose a tag to compare

February 27, 2025

StreamChat

✅ Added

  • Add sending messages to only specific members #3595
  • Add Draft Messages Support #3588
    • Add ChatChannel.draftMessage
    • Add ChatMessage.draftReply
    • Add ChannelController:
      • updateDraftMessage()
      • deleteDraftMessage()
      • loadDraftMessage()
    • Add MessageController:
      • updateDraftReply()
      • deleteDraftReply()
      • loadDraftReply()
    • Add CurrentUserController:
      • deleteDraft()
      • loadDraftMessages()
      • loadMoreDraftMessages()

🐞 Fixed

  • Update channel's preview message when coming back to online #3574
  • Fix message transformer not being applied when editing a message #3602

StreamChatUI

✅ Added

  • Add Components.isDraftMessagesEnabled to enable Draft Messages #3588
  • Add draft preview in Channel List and Thread List if drafts are enabled #3588

4.72.0

04 Feb 12:53

Choose a tag to compare

February 04, 2025

🔄 Changed

  • Revert 'Improve performance of model conversions with large extra data' #3576

4.71.0

28 Jan 13:46

Choose a tag to compare

January 28, 2025

StreamChat

✅ Added

  • Expose Event.name to easily check which event it is #3569
  • Add support for transforming Messages, Channels and Members #3564
    • Add ChatClientConfig.modelsTransformer
    • Add ChatMessage.replacing()
    • Add ChatChannel.replacing()
    • Add ChatChannelMember.replacing()

🐞 Fixed

  • Calling async connectUser() methods can sometimes throw CurrentUserDoesNotExist() unexpectedly #3565
  • Fix creating controllers from background threads leading to rare crashes #3566
  • Fix hard deleted message events not being reported in EventsController #3569
  • Fix hard deleting a parent message not deleting its replies #3569

StreamChatUI

✅ Added

  • Add a simpler way to customize header and footer views in the Message List #3567
    • Add ChatMessageListVC.headerView
    • Add ChatMessageListVC.footerView
  • Make it easier to provide state handling when loading more messages #3567
    • Add ChatChannelVC.loadPreviousMessages() + ChatChannelVC.didFinishLoadingPreviousMessages(error:)
    • Add ChatChannelVC.loadNextMessages() + ChatChannelVC.didFinishLoadingNextMessages(error:)
    • Add ChatThreadVC.loadPreviousReplies() + ChatThreadVC.didFinishLoadingPreviousReplies(error:)
    • Add ChatThreadVC.loadNextReplies() + ChatThreadVC.didFinishLoadingNextReplies(error:)

🐞 Fixed

  • Fix thread reply action shown when inside a Thread #3561
  • Fix reaction author's view with shrinked reaction images in iOS 18 #3568
  • Fix missing final attributes for supplementary views exception #3570
  • Fix duplicated didReceiveEvent inside ChatThreadVC #3569

🔄 Changed

  • Deprecates ChatThreadVC.channelEventsController #3569

4.70.0

15 Jan 10:55

Choose a tag to compare

January 14, 2025

StreamChat

✅ Added

  • Use AppSettings.fileUploadConfig and AppSettings.imageUploadConfig for blocking attachment uploads #3556
  • Add FilterKey.disabled and ChatChannel.isDisabled #3546
  • Add ImageAttachmentPayload.file for setting file_size and mime_type for image attachments #3548

🐞 Fixed

  • Remove the main thread requirement from the DataStore #3541
  • Refresh quoted message preview when the quoted message is deleted #3553

⚡ Performance

  • Improve performance of accessing database model properties #3534
  • Improve performance of model conversions with large extra data #3534

🔄 Changed

  • Deprecate ImageAttachmentPayload.init(title:imageRemoteURL:originalWidth:originalHeight:extraData:) in favor of ImageAttachmentPayload.init(title:imageRemoteURL:file:originalWidth:originalHeight:extraData:) #3548

StreamChatUI

🔄 Changed

  • Set supported media types based on AppSettings in ComposerVC.filePickerVC #3556

4.69.0

18 Dec 14:08

Choose a tag to compare

December 18, 2024

StreamChat

✅ Added

  • Archiving channels for the current user #3524
    • Add Chat.archive(scope:) and Chat.unarchive(scope:)
    • Add ChatChannelController.archive(scope:completion:) and ChatChannelController.unarchive(scope:completion:)
    • Add FilterKey.archive for filtering channel lists
    • Add ChatChannel.membership.archivedAt
    • Add ChatChannel.isArchived
  • Pinning channels for the current user #3518
    • Add Chat.pin(scope:) and Chat.unpin(scope:)
    • Add ChatChannelController.pin(scope:completion:) and ChatChannelController.unpin(scope:completion:)
    • Add FilterKey.pinned for filtering channel lists
    • Add ChannelListSortingKey.pinnedAt
    • Add ChatChannel.membership.pinnedAt
    • Add ChatChannel.isPinned
  • Add channel list filtering key: FilterKey.members #3536
  • Add member list filtering keys: FilterKey.channelRole and FilterKey.email #3535
  • Add member list sorting key: ChannelMemberListSortingKey.channelRole #3535

🐞 Fixed

  • End background task before starting a new one #3528

4.68.0

03 Dec 13:13

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

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

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