Repository navigation
5.12.0 Release - #4289
5.12.0 Release#4289
Conversation
…4278) * Fix channel state being overwritten by older event snapshots Skip saveChannel when an incoming payload has an older updatedAt so nested snapshots on member.updated cannot rewind channel data. * Add changelog PR link for stale channel snapshot fix * Simplify the stale channel updatedAt check Compare payload.updatedAt with the stored DTO date directly, and align the changelog wording with the PR title. * Apply suggestion from @nuno-vieira * Use fixed timestamps in stale channel snapshot tests Date() round-trips through Core Data lose sub-microsecond precision, so comparing against the stored dates failed. * Give test channel updates a newer updatedAt Dummy payloads used a random updatedAt, so the stale-snapshot guard skipped later saves that were meant to refresh names and capabilities. * Use a fixed later timestamp for test channel updates Replace the ad-hoc Date() and Date().addingTimeInterval(60) values with a shared channelLaterUpdateDate constant, so payloads that must be applied on top of an already saved channel always win the updatedAt comparison.
* Migrate channel query to OpenAPI generated v2 endpoint * Omit watchers limit for backend default page size in v2 channel requests * Fix build error after merge * Save threads from channel payload * Fix tests * Remove partially failing channel list tests * Refactor fillIds
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
SDK Size
|
StreamChat XCSize
Show 96 more objects
|
StreamChatUI XCSize
Show 6 more objects
|
Generated by 🚫 Danger |
Public Interface+ public extension AudioSessionConfiguring
open class ChatMessagePopupVC: _ViewController, ComponentsProvider
- override open func setUpAppearance()
+ override open func viewWillTransition(to size: CGSize,with coordinator: UIViewControllerTransitionCoordinator)
- override open func setUpLayout()
+ override open func viewDidLayoutSubviews()
- open func addBlurView()
+ override open func setUpAppearance()
- open func addScrollView()
+ override open func setUpLayout()
- open func addContentView()
+ open func addBlurView()
- open func addMainContainerView()
+ open func addScrollView()
- open func addReactionPickerView()
+ open func addContentView()
- open func addMessageView()
+ open func addMainContainerView()
- open func addMessageActionsView()
+ open func addReactionPickerView()
- open func addReactionAuthorsView()
+ open func addMessageView()
- open func layoutMainContainerView()
+ open func addMessageActionsView()
- open func layoutMessageView()
+ open func addReactionAuthorsView()
- open func layoutReactionPickerView()
+ open func layoutMainContainerView()
- open func layoutMessageActionsView()
+ open func layoutMessageView()
- open func layoutReactionAuthorsView()
+ open func layoutReactionPickerView()
- open func layoutPositionOfMessageView()
+ open func layoutMessageActionsView()
- @objc open func didTapOnView(_ gesture: UITapGestureRecognizer)
+ open func layoutReactionAuthorsView()
+ open func layoutPositionOfMessageView()
+ @objc open func didTapOnView(_ gesture: UITapGestureRecognizer)
open class ZoomAnimator: NSObject, UIViewControllerAnimatedTransitioning
- public var isPresenting: Bool
+ public weak var toContentView: UIView?
-
+ public var isPresenting: Bool
-
+
- open func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?)-> TimeInterval
+
- open func animateTransition(using transitionContext: UIViewControllerContextTransitioning)
+ open func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?)-> TimeInterval
- open func animateZoomInTransition(using transitionContext: UIViewControllerContextTransitioning)
+ open func animateTransition(using transitionContext: UIViewControllerContextTransitioning)
- open func animateZoomOutTransition(using transitionContext: UIViewControllerContextTransitioning)
+ open func animateZoomInTransition(using transitionContext: UIViewControllerContextTransitioning)
- open func prepareZoomOutTransition(using transitionContext: UIViewControllerContextTransitioning)
+ open func animateZoomOutTransition(using transitionContext: UIViewControllerContextTransitioning)
- open func animateDismiss(using transitionContext: UIViewControllerContextTransitioning)
+ open func prepareZoomOutTransition(using transitionContext: UIViewControllerContextTransitioning)
+ open func animateDismiss(using transitionContext: UIViewControllerContextTransitioning)
open class GalleryVC: _ViewController, UIGestureRecognizerDelegate, AppearanceProvider, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout, ComponentsProvider
- open func shareItem(at indexPath: IndexPath)-> Any?
+ override open func viewSafeAreaInsetsDidChange()
- open func prepareShareItem(at indexPath: IndexPath)async -> Any?
+ open func shareItem(at indexPath: IndexPath)-> Any?
- open func cellReuseIdentifierForItem(at indexPath: IndexPath)-> String?
+ open func prepareShareItem(at indexPath: IndexPath)async -> Any?
- open func handleSingleTapOnCell(at indexPath: IndexPath)
+ open func cellReuseIdentifierForItem(at indexPath: IndexPath)-> String?
-
+ open func handleSingleTapOnCell(at indexPath: IndexPath)
-
+
- public struct Content
+
-
+ public struct Content
- public var message: ChatMessage
+
- public var currentPage: Int
+ public var message: ChatMessage
-
+ public var currentPage: Int
-
+
- public init(message: ChatMessage,currentPage: Int = 0)
+
+ public init(message: ChatMessage,currentPage: Int = 0)
- open class VoiceRecordingAttachmentQuotedPreview: _View, ComponentsProvider
+ open class VoiceRecordingAttachmentQuotedPreview: _View, AppearanceProvider, ComponentsProvider
-
+ open var minimumFontScaleFactor: CGFloat
-
+
- override open func setUpLayout()
+
- override open func updateContent()
+ override open func setUpAppearance()
-
+ override open func setUpLayout()
-
+ override open func updateContent()
- public struct Content
+
-
+
- public var title: String
+ public struct Content
- public var size: Int64
+
- public var duration: TimeInterval
+ public var title: String
- public var audioAssetURL: URL
+ public var size: Int64
-
+ public var duration: TimeInterval
-
+ public var audioAssetURL: URL
- public init(title: String,size: Int64,duration: TimeInterval,audioAssetURL: URL)
+
+
+ public init(title: String,size: Int64,duration: TimeInterval,audioAssetURL: URL)
open class StreamAudioSessionConfigurator: AudioSessionConfiguring, @unchecked Sendable
- open func deactivateRecordingSession()throws
+ open func activateRecordingSession(completion: (@Sendable (Error?) -> Void)?)throws
- open func activatePlaybackSession()throws
+ open func deactivateRecordingSession()throws
- open func deactivatePlaybackSession()throws
+ open func deactivateRecordingSession(completion: (@Sendable (Error?) -> Void)?)throws
- open func requestRecordPermission(_ completionHandler: @escaping @Sendable (Bool) -> Void)
+ open func activatePlaybackSession()throws
+ open func activatePlaybackSession(completion: (@Sendable (Error?) -> Void)?)throws
+ open func deactivatePlaybackSession()throws
+ open func deactivatePlaybackSession(completion: (@Sendable (Error?) -> Void)?)throws
+ open func requestRecordPermission(_ completionHandler: @escaping @Sendable (Bool) -> Void) |
|
Build for regression testing №123457170 has been uploaded to TestFlight 🎁 |
|
SDK Performance
|
|
/merge release |
|
Publication of the release has been launched 👍 |


✅ Added
AudioSessionConfiguringvariants with a completion handler for reporting audio session activation errors #4286🐞 Fixed
🔄 Changed
StreamChatUI
✅ Added
🐞 Fixed