From bfe0396936633a2c1e6082551ff2f3982e92bb36 Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Wed, 30 Sep 2026 14:38:48 +0200 Subject: [PATCH 1/2] chore(repo): release v10.5.0 Co-Authored-By: Claude Opus 5.5 (1M context) --- docs/docs_screenshots/pubspec.yaml | 8 +- melos.yaml | 22 ++---- packages/stream_chat/CHANGELOG.md | 10 +-- packages/stream_chat/example/pubspec.yaml | 2 +- packages/stream_chat/lib/version.dart | 2 +- packages/stream_chat/pubspec.yaml | 2 +- packages/stream_chat_flutter/CHANGELOG.md | 79 ++++++++----------- .../stream_chat_flutter/example/pubspec.yaml | 6 +- packages/stream_chat_flutter/pubspec.yaml | 32 +------- .../stream_chat_flutter_core/CHANGELOG.md | 7 +- .../example/pubspec.yaml | 2 +- .../stream_chat_flutter_core/pubspec.yaml | 4 +- .../stream_chat_localizations/CHANGELOG.md | 4 +- .../example/pubspec.yaml | 4 +- .../stream_chat_localizations/pubspec.yaml | 4 +- packages/stream_chat_persistence/CHANGELOG.md | 2 +- .../example/pubspec.yaml | 4 +- packages/stream_chat_persistence/pubspec.yaml | 4 +- sample_app/pubspec.yaml | 8 +- 19 files changed, 83 insertions(+), 123 deletions(-) diff --git a/docs/docs_screenshots/pubspec.yaml b/docs/docs_screenshots/pubspec.yaml index ef368f9f3e..7ece4d0a25 100644 --- a/docs/docs_screenshots/pubspec.yaml +++ b/docs/docs_screenshots/pubspec.yaml @@ -18,12 +18,8 @@ dependencies: flutter: sdk: flutter record: ^6.2.0 - stream_chat_flutter: ^10.4.0 - stream_core_flutter: - git: - url: https://github.com/GetStream/stream-core-flutter.git - ref: 2daa0a641519abe9ab637bcb41c69ed3ea4273b7 - path: packages/stream_core_flutter + stream_chat_flutter: ^10.5.0 + stream_core_flutter: ^0.5.2 dev_dependencies: alchemist: ^0.14.0 diff --git a/melos.yaml b/melos.yaml index bfef400b00..007a95c4c2 100644 --- a/melos.yaml +++ b/melos.yaml @@ -97,23 +97,15 @@ command: rxdart: ^0.28.0 share_plus: ">=12.0.2 <14.0.0" sqlite3_flutter_libs: ^0.5.26 - stream_chat: ^10.4.0 - stream_chat_flutter: ^10.4.0 - stream_chat_flutter_core: ^10.4.0 - stream_chat_localizations: ^10.4.0 - stream_chat_persistence: ^10.4.0 + stream_chat: ^10.5.0 + stream_chat_flutter: ^10.5.0 + stream_chat_flutter_core: ^10.5.0 + stream_chat_localizations: ^10.5.0 + stream_chat_persistence: ^10.5.0 streaming_shared_preferences: ^2.0.0 svg_icon_widget: ^0.0.1 - stream_core_flutter: - git: - url: https://github.com/GetStream/stream-core-flutter.git - ref: 2daa0a641519abe9ab637bcb41c69ed3ea4273b7 - path: packages/stream_core_flutter - stream_thumbnail: - git: - url: https://github.com/GetStream/stream-core-flutter.git - ref: 2aea1413997af886ee951921d71e6b8cb8c5cfbb - path: packages/stream_thumbnail + stream_core_flutter: ^0.5.2 + stream_thumbnail: ^0.2.0 synchronized: ^3.4.0 url_launcher: ^6.3.2 uuid: ^4.5.3 diff --git a/packages/stream_chat/CHANGELOG.md b/packages/stream_chat/CHANGELOG.md index 4a3179ae1c..e5acee7a52 100644 --- a/packages/stream_chat/CHANGELOG.md +++ b/packages/stream_chat/CHANGELOG.md @@ -1,19 +1,20 @@ -## Upcoming +## 10.5.0 โœ… Added - Added a getter for `StreamChatClient.recoverStateOnReconnect`, which was previously write-only. +- Added `ChannelClientState.isMarkedAsUnread`, which reports whether the current user marked the channel unread and hasn't read past that point since. ๐Ÿ”„ Changed -- Reconnecting no longer replays very large event backlogs; the offline cache is reset and the affected channels are re-queried instead, so a long spell offline does not stall the app on reconnect. +- Reconnecting after a long spell offline now resets the offline cache and re-queries channels instead of replaying a large event backlog. - Improved the speed of converting models to and from JSON. ๐Ÿž Fixed - Fixed reconnecting with more than 255 channels clearing the offline cache and skipping the events missed while offline. - Fixed reconnect recovery refreshing only the first 30 active channels. -- Fixed reconnect catch-up covering an arbitrary subset of channels when more are active than one request holds; the most recently active are now covered first. +- Fixed reconnect catch-up covering an arbitrary subset of channels when many are active; the most recently active now come first. - Fixed `CurrentPlatform` throwing `UnimplementedError` on WebAssembly builds. - Fixed live location expiry emitting repeated `location.expired` events for the same expired location. - Fixed members removed from a channel keeping their read state in the channel state. @@ -23,7 +24,7 @@ ๐Ÿ”„ Internal / Non-breaking -- Errors thrown synchronously while handling a channel event are now logged as warnings instead of reaching the root zone, where crash reporters report them as fatal. +- Errors thrown while handling a channel event are now logged as warnings instead of surfacing as fatal crashes. ## 10.4.0 @@ -54,7 +55,6 @@ - Added `StreamChatClient.isLocalUnreadCountEnabled` (default `false`). When enabled, channels that have read events disabled (e.g. livestream channel types) track their unread count locally, on-device: incoming messages increment it, hard-deleted messages decrement it, and `Channel.markRead` / `markUnread` / `markUnreadByTimestamp` update it locally without a network request โ€” including `Read.lastReadMessageId`, so the unread divider and jump-to-unread button anchor to the right message. Channels that support read receipts are unaffected and keep relying on server-driven unread counts. - Added `Event.watcherCount`, exposing the server-provided `watcher_count` field on events (e.g. `user.watching.start`, `user.watching.stop`, `message.new`). - Added `StreamChatNetworkError.type` (a `StreamChatNetworkErrorType` capturing the transport failure kind โ€” connection error, timeout, cancellation, etc.). -- Added `ChannelClientState.isMarkedAsUnread`, reporting whether the current user has an active manual mark-unread on the channel that hasn't been read past yet. Set by `markUnreadLocally` and by a `notification.mark_unread` event for the current user; cleared by `markReadLocally` and by a `message.read` event for the current user. - Exported `FilterOperator` alongside `Filter`. โš ๏ธ Deprecated diff --git a/packages/stream_chat/example/pubspec.yaml b/packages/stream_chat/example/pubspec.yaml index 4ef732589e..1fd2d45d93 100644 --- a/packages/stream_chat/example/pubspec.yaml +++ b/packages/stream_chat/example/pubspec.yaml @@ -24,7 +24,7 @@ dependencies: cupertino_icons: ^1.0.3 flutter: sdk: flutter - stream_chat: ^10.4.0 + stream_chat: ^10.5.0 dependency_overrides: stream_chat: diff --git a/packages/stream_chat/lib/version.dart b/packages/stream_chat/lib/version.dart index de2f022d6e..9e06db7933 100644 --- a/packages/stream_chat/lib/version.dart +++ b/packages/stream_chat/lib/version.dart @@ -9,4 +9,4 @@ /// Current package version /// Used in [SystemEnvironmentManager] to build the `x-stream-client` header -const PACKAGE_VERSION = '10.4.0'; +const PACKAGE_VERSION = '10.5.0'; diff --git a/packages/stream_chat/pubspec.yaml b/packages/stream_chat/pubspec.yaml index 8f95a7ebcb..a00994ce0f 100644 --- a/packages/stream_chat/pubspec.yaml +++ b/packages/stream_chat/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_chat homepage: https://getstream.io/ description: The official Dart client for Stream Chat, a service for building chat applications. -version: 10.4.0 +version: 10.5.0 repository: https://github.com/GetStream/stream-chat-flutter issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index ed9e82511d..c83d4edc9f 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -1,49 +1,63 @@ -## Upcoming +## 10.5.0 โœ… Added -- Added `StreamMessageItem.semanticsLabel`, which replaces the announcement composed for a message row, and `StreamMessageItem.excludeFromSemantics`, which leaves the row unlabeled so the bubble and footer announce their own parts. +- Added `StreamMessageItem.semanticsLabel` and `StreamMessageItem.excludeFromSemantics` to override or remove a message row's screen-reader announcement. - Added `StreamQuotedMessage.replyMessage`, the message doing the quoting, which lets a quoted preview announce who replied to whom. -- Added `StreamMessageContent.excludeTextFromSemantics` and `StreamMessageFooter.excludeFromSemantics`, which keep the message text and the metadata out of the semantics tree when an enclosing row already announces them. -- Added support for inserting images and GIFs from the keyboard (e.g. Gboard) in `StreamMessageComposer`, configurable via `contentInsertionConfiguration`. +- Added `StreamMessageContent.excludeTextFromSemantics` and `StreamMessageFooter.excludeFromSemantics` to keep the text and metadata out of the semantics tree. +- Added inserting images and GIFs from the keyboard in `StreamMessageComposer`, via `contentInsertionConfiguration`. +- Added `Translations.unreadMessagesSeparatorLabel`, which shows an unread count in the divider. +- Exported `UnreadMessagesSeparator`, the divider widget `StreamMessageListView` renders at the unread boundary. +- Added an optional `unreadCount` to `UnreadIndicatorButton` to show a count the caller controls. -โš ๏ธ Changed +๐Ÿ”„ Changed - Bumped `file_picker` to `>=12.0.0 <14.0.0`. - `PlatformFileX.toAttachmentFile` and `PlatformFileX.toAttachment` are now async. -- Video thumbnails now use `stream_thumbnail` on every platform, and the `thumblr` - dependency is gone. -- Linux builds now need the FFmpeg and libwebp development packages โ€” on Debian/Ubuntu: - `libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libwebp-dev`. -- A deleted message now renders the timestamp and delivery status below the placeholder, matching the design, and no longer shows the "Edited" marker โ€” there is no text left to have been edited. -- `AccessibleMessagePreviewFormatter.formatMessageSemanticsLabel` must now return the body without a speaker prefix when `channel` is omitted. An implementation that prefixes unconditionally makes a message row announce "You said, You: hello". -- `StreamImageCDN.resolveUrl` now leaves a URL that already asks for a specific size alone, rather than replacing it with the size the layout computed. -- Removed the unused `shimmer` dependency; the skeleton loading widgets already use `stream_core_flutter`'s `StreamSkeletonLoading` and never depended on the `shimmer` package. +- Video thumbnails now use `stream_thumbnail` on every platform, and the `thumblr` dependency is gone. +- Linux builds now need the FFmpeg and libwebp development packages โ€” on Debian/Ubuntu: `libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libwebp-dev`. +- A deleted message now shows its timestamp and delivery status, and no longer shows the "Edited" marker. +- `AccessibleMessagePreviewFormatter.formatMessageSemanticsLabel` must now omit the speaker prefix when `channel` is omitted. +- `StreamImageCDN.resolveUrl` no longer overrides a size already set on the URL. +- Removed the unused `shimmer` dependency. +- A class that `implements Translations` must add `unreadMessagesSeparatorLabel`; forward it to `unreadMessagesSeparatorText()` to keep the old copy. +- The jump-to-unread pill now shows the unread count from when the channel opened, and stays dismissed for the session once tapped, closed or scrolled past. +- The scroll-to-bottom badge now counts only messages that arrive while scrolled away, and resets at the bottom. +- The unread messages divider now shows a count. +- `StreamMessageListView` no longer marks a channel read until the unread boundary has been seen, or while it is manually marked unread. +- Screen readers now announce each message as one phrase: sender, body, time and status. โš ๏ธ Deprecated - Deprecated `withData` and `withReadStream` on `StreamAttachmentHandler.pickFile` and `StreamFilePicker`; they no longer have any effect. +- Deprecated `Translations.unreadMessagesSeparatorText` in favor of `unreadMessagesSeparatorLabel`. ๐Ÿž Fixed - Fixed the file picker offering file types the Stream Dashboard doesn't allow; it now only offers the allowed file extensions. -- Fixed `StreamAttachmentValidator` accepting or rejecting a file differently from the server when an extension list holds a compound entry like `.tar.gz`; it now compares only the last extension. +- Fixed `StreamAttachmentValidator` disagreeing with the server on compound extensions like `.tar.gz`. - Fixed `StreamAttachmentHandler.pickFile` throwing on an empty selection; it now returns `null`. -- Fixed the package no longer compiling when `stream_core_flutter` adds an avatar size. The three switches mapping `StreamAvatarSize` and `StreamAvatarGroupSize` onto an indicator size, an inner avatar size and the number of initials were exhaustive, so a size added upstream broke the build here. They fall back to the largest size they know now, and `StreamAvatarSize.xlPlus` (64px), `StreamAvatarSize.xxxl` / `StreamAvatarGroupSize.xxxl` (104px) are mapped explicitly. +- Fixed the package failing to compile when `stream_core_flutter` adds an avatar size. - Fixed `StreamAttachmentHandler` throwing `UnimplementedError` on WebAssembly builds. -- Fixed the gallery tab vanishing from the attachment picker when `allowedAttachmentPickerTypes` allowed images or videos but not both. It now stays available and lists only the allowed media. -- Improved the screen-reader experience in the message list: each message is announced as a single phrase naming the sender, the body, the time, the edited marker and the delivery status, while the attachments, reaction chips, quoted message and replies row stay reachable one level deeper. +- Fixed the gallery tab vanishing from the attachment picker when only images or only videos are allowed. - Fixed the message body being announced as its markdown source, so link and emphasis syntax is no longer read aloud. - Fixed a quoted message announcing only the quoted author's name, saying nothing about who replied to whom. - Fixed an attachment tile announcing nothing about its type or its position in a gallery. -- Fixed a date divider announcing a clock time it never showed instead of the date it displays, and exposed it as a header so days can be jumped between. -- Fixed the attachment upload progress on an outgoing message counting its link preview, which inflated the total against an attachment the sender never picked. -- Fixed a message the moderation system bounced showing a read receipt once other members had read past it. It now shows only the error badge, matching what a screen reader announces for it. +- Fixed a date divider announcing a time instead of its date to screen readers. +- Fixed attachment upload progress counting the link preview. +- Fixed a bounced message showing a read receipt. - Fixed image attachments being requested from the CDN at more pixels than the original holds. -- Fixed one image rendition yielding two cache entries when its resize parameters arrived in a different order, or a crop on the URL survived a resize that does not crop. +- Fixed one image rendition being cached twice. - Fixed image attachments not being resized at all when the URL carried a crop or a resize mode but no dimensions. - Fixed a URL whose host merely contains `stream-io-cdn.com` being treated as Stream's CDN. - Fixed a tap on the unread badge of `StreamBackButton` (the channel header's back button) doing nothing; it now presses the button. +- Fixed message annotations wrapping mid-sentence when they don't fit on one line; the action now moves below the label. +- Fixed messages arriving while the user was mid-drag or mid-fling being dropped from the scroll-to-bottom badge and the unread divider's count. +- Fixed the scroll-to-bottom badge and unread divider counting messages the channel's unread count ignores. +- Fixed thread reads being blocked whenever the parent channel wasn't up to date. +- Fixed the jump-to-unread pill being dismissed by the slightest scroll after marking a message unread. +- Fixed the jump-to-unread pill flickering back in and straight out on every new message after being dismissed. +- Fixed tapping the jump-to-unread pill doing nothing on a channel the user has never opened. ## 10.4.0 @@ -59,10 +73,6 @@ - Long-pressing a reaction chip no longer opens the message actions modal; the chips always claim the long press. Left unset, `onReactionLongPress` defaults to opening the `ReactionDetailSheet`. - Tapping or long-pressing a reaction chip now opens the `ReactionDetailSheet` pre-filtered to that reaction; it previously opened unfiltered. Clustered and overflow chips map to no single reaction, so they still open unfiltered. -๐Ÿž Fixed - -- Message annotations no longer wrap their label mid-sentence when they don't fit on one line, leaving the action stranded beside the label's last line. The action now moves below the label as a whole โ€” `Replied to a thread ยท View` becomes `Replied to a thread` above `View` โ€” and the `ยท` is dropped, since it no longer sits between anything. - ๐Ÿ”„ Changed - Raised minimum Flutter to `>=3.44.0` and Dart SDK to `^3.12.0`. @@ -101,18 +111,6 @@ - Added `onReactionTap` to `StreamMessageItem` and `StreamMessageListView`, reporting the tapped message's `BuildContext` and a `ReactionTapDetails` with the tapped `message` and `reaction` (the reaction is `null` for a clustered or overflow chip that maps to no single reaction). - Exported `StreamEphemeralMessage`, the row `StreamMessageListView` builds for ephemeral messages, matching its already-exported `StreamSystemMessage` and `StreamModeratedMessage` siblings. - Added an `unreadIndicator` parameter to `StreamBackButton` that overlays a widget (typically a `StreamUnreadIndicator`) on the button's top-end corner. Pass `StreamUnreadIndicator(excludeCid: cid)` to show the total unread count of other channels, or `StreamUnreadIndicator.channels(cid: cid)` for a single channel's count. -- Added `StreamChannel.openAtFirstUnread` (`stream_chat_flutter_core`), defaulting to `true`. Set to `false` to always open a channel at the latest message instead of scrolling to the first pre-existing unread message. -- Added `Translations.unreadMessagesSeparatorLabel`, used by the default `UnreadMessagesSeparator` to show a count, e.g. "5 unread messages". It falls back to the (now deprecated) `unreadMessagesSeparatorText`, so a class that extends `Translations` keeps showing any custom text it already overrides. -- Exported `UnreadMessagesSeparator`, the divider widget `StreamMessageListView` renders at the unread boundary. -- Added an optional `unreadCount` to `UnreadIndicatorButton`. When supplied, the widget renders unconditionally with that count and skips its internal read-state subscription, letting the host own visibility โ€” this is how `StreamMessageListView` now drives it. Omitting it keeps the previous self-subscribing behaviour, and `onJumpTap` keeps its `String? lastReadMessageId` argument, so existing usages are unaffected. - -๐Ÿ”„ Changed - -- `Translations.unreadMessagesSeparatorLabel` is a new interface member. Classes that `extends Translations` (or `GlobalStreamChatLocalizations`) inherit the fallback and need no change, but a class that `implements` either interface directly must add this member โ€” Dart does not inherit method bodies through `implements`. Forward it to your existing `unreadMessagesSeparatorText()` to keep the previous copy. -- Changed the "โ†‘ N unread" jump-to-unread pill to a count fixed when the channel opens, shown as soon as that count is known and dismissed permanently for the session once tapped, dismissed, or scrolled past. -- Changed the scroll-to-bottom badge to count only messages that arrive out of view during the current session, rather than being seeded from the channel's unread count. It always resets to 0 once the user reaches the bottom. -- Changed the "unread messages" divider to show a count, starting at the channel's open-time unread total and counting up as further messages arrive during the session, instead of a fixed, count-less label. -- Tightened `StreamMessageListView`'s automatic mark-read gating to also require that the pre-existing unread boundary has been seen or scrolled past, and that there's no pending manual mark-unread. Channels with no boundary to reach โ€” opened fully read, never opened at all, or tracking unread locally โ€” are unaffected. โš ๏ธ Deprecated @@ -120,7 +118,6 @@ - Deprecated `onReactionsTap` (and the `OnReactionsTap` typedef) on `StreamMessageItem` and `StreamMessageListView` in favor of `onReactionTap`. - Deprecated `height`/`width` of `StreamScrollViewLoadingWidget` in favor of `size`. - Deprecated `StreamBackButton.showUnreadCount` and `StreamBackButton.channelId` in favor of `unreadIndicator`. -- Deprecated `Translations.unreadMessagesSeparatorText` in favor of `unreadMessagesSeparatorLabel`, which takes a `count`. The old string is still used as the fallback for translation classes that haven't overridden the new one. ๐Ÿž Fixed @@ -132,12 +129,6 @@ - Fixed the "Message deleted" bubble overflowing its maximum width when the localized label is long; the label now wraps instead. - Fixed the thread scroll-to-bottom button keying off the parent channel's up-to-date state instead of the thread's own scroll position, so it no longer appears while already at the newest reply. - Fixed the `StreamBackButton` unread badge including the currently open channel in its total count. -- Fixed messages arriving while the user was mid-drag or mid-fling being dropped from the scroll-to-bottom badge and the unread divider's count. The "don't fight a scroll in motion" guard ran before the counting, so those arrivals were never counted at all. -- Fixed the scroll-to-bottom badge and unread divider counting messages the channel's own unread count ignores โ€” silent, shadowed, ephemeral, thread-only, restricted, own and muted-sender messages no longer inflate either counter, and neither counts at all while the user has read receipts disabled. -- Fixed thread reads being blocked whenever the parent channel wasn't up to date. `markThreadRead` no longer consults the channel's `isUpToDate`, which is unrelated to a thread's own read state. -- Fixed the jump-to-unread pill being dismissed by the slightest scroll after marking a message unread. Its anchor is the message the user just acted on, so it starts out on screen; only scrolling past it now retires the pill. -- Fixed the jump-to-unread pill flickering back in and straight out on every new message after being dismissed. The mark-unread reset now runs on the transition into the marked-unread state rather than on every read-state emission while it is set. -- Fixed tapping the jump-to-unread pill doing nothing on a channel the current user has never opened, where there is no read boundary to jump to. It now scrolls to the oldest loaded message and pulls in the next page, leaving the pill up until the real boundary is reached. - Fixed the thread-replies footer under a message in the channel being hardcoded English and reading "1 replies" for a single reply; it now uses `threadReplyCountText`, which is localized and correctly singularized. - Fixed a channel-list row briefly previewing another channel's last message after the list reorders. The preserved last-known message is now dropped when a row is rebound to a different channel, instead of being used as a fallback while the new channel is still loading. - Fixed the channel list still showing a timestamp next to "No messages yet" after a channel is truncated. `ChannelLastMessageDate` now reads the date off the message the preview actually shows instead of `Channel.lastMessageAt`, which cannot be cleared once a truncation removes every message. diff --git a/packages/stream_chat_flutter/example/pubspec.yaml b/packages/stream_chat_flutter/example/pubspec.yaml index 702d735ff7..7e0bfa655e 100644 --- a/packages/stream_chat_flutter/example/pubspec.yaml +++ b/packages/stream_chat_flutter/example/pubspec.yaml @@ -25,9 +25,9 @@ dependencies: flutter: sdk: flutter responsive_builder: ^0.7.0 - stream_chat_flutter: ^10.4.0 - stream_chat_localizations: ^10.4.0 - stream_chat_persistence: ^10.4.0 + stream_chat_flutter: ^10.5.0 + stream_chat_localizations: ^10.5.0 + stream_chat_persistence: ^10.5.0 dependency_overrides: stream_chat: diff --git a/packages/stream_chat_flutter/pubspec.yaml b/packages/stream_chat_flutter/pubspec.yaml index fc487eda16..a0de5496c4 100644 --- a/packages/stream_chat_flutter/pubspec.yaml +++ b/packages/stream_chat_flutter/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_chat_flutter homepage: https://github.com/GetStream/stream-chat-flutter description: Stream Chat official Flutter SDK. Build your own chat experience using Dart and Flutter. -version: 10.4.0 +version: 10.5.0 repository: https://github.com/GetStream/stream-chat-flutter issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues @@ -54,33 +54,9 @@ dependencies: record: ^6.2.0 rxdart: ^0.28.0 share_plus: ">=12.0.2 <14.0.0" - stream_chat_flutter_core: ^10.4.0 - stream_core_flutter: - # The ignore below silences `invalid_dependency` because we occasionally - # pin stream_core_flutter to a git ref to iterate on it alongside this - # SDK between its releases. - # - # **Note:** Before publishing stream_chat_flutter, this MUST be swapped - # back to a pub version constraint โ€” git deps are not allowed on pub.dev - # and will block the release. - # ignore: invalid_dependency - git: - url: https://github.com/GetStream/stream-core-flutter.git - ref: 2daa0a641519abe9ab637bcb41c69ed3ea4273b7 - path: packages/stream_core_flutter - stream_thumbnail: - # The ignore below silences `invalid_dependency` because we occasionally - # pin stream_thumbnail to a git ref to iterate on it alongside this - # SDK between its releases. - # - # **Note:** Before publishing stream_chat_flutter, this MUST be swapped - # back to a pub version constraint โ€” git deps are not allowed on pub.dev - # and will block the release. - # ignore: invalid_dependency - git: - url: https://github.com/GetStream/stream-core-flutter.git - ref: 2aea1413997af886ee951921d71e6b8cb8c5cfbb - path: packages/stream_thumbnail + stream_chat_flutter_core: ^10.5.0 + stream_core_flutter: ^0.5.2 + stream_thumbnail: ^0.2.0 svg_icon_widget: ^0.0.1 synchronized: ^3.4.0 theme_extensions_builder_annotation: ^7.1.0 diff --git a/packages/stream_chat_flutter_core/CHANGELOG.md b/packages/stream_chat_flutter_core/CHANGELOG.md index 1aec13e6a7..667fadcfe4 100644 --- a/packages/stream_chat_flutter_core/CHANGELOG.md +++ b/packages/stream_chat_flutter_core/CHANGELOG.md @@ -1,3 +1,9 @@ +## 10.5.0 + +โœ… Added + +- Added `StreamChannel.openAtFirstUnread`; set it to `false` to open a channel at the latest message instead of the first unread. + ## 10.4.0 ๐Ÿ”„ Changed @@ -10,7 +16,6 @@ - Added `StreamChannelState.retry()` to re-run a failed channel initialization, for use as the retry action in `StreamChannel.errorBuilder`. - Added `DefaultStreamChannelBuilders`, an inherited widget that supplies default loading and error builders to descendant `StreamChannel`s (resolved via `loadingBuilderOf`/`errorBuilderOf`). -- Added `StreamChannel.openAtFirstUnread`, defaulting to `true` (preserving existing behavior). Set to `false` to always open a channel at the latest message, instead of scrolling to the first pre-existing unread message. - Added `search()`, `searchWithFilter()`, and `clearResults()` to `StreamMessageSearchListController`, `StreamUserListController`, and `StreamMemberListController`. `search()`/`searchWithFilter()` debounce reloads by the search-text length (a filter with no search text reloads immediately) and drop superseded results; `clearResults()` cancels any pending search and clears the results. ๐Ÿž Fixed diff --git a/packages/stream_chat_flutter_core/example/pubspec.yaml b/packages/stream_chat_flutter_core/example/pubspec.yaml index 46f4631bda..38b6df683d 100644 --- a/packages/stream_chat_flutter_core/example/pubspec.yaml +++ b/packages/stream_chat_flutter_core/example/pubspec.yaml @@ -23,7 +23,7 @@ dependencies: cupertino_icons: ^1.0.3 flutter: sdk: flutter - stream_chat_flutter_core: ^10.4.0 + stream_chat_flutter_core: ^10.5.0 dependency_overrides: stream_chat: diff --git a/packages/stream_chat_flutter_core/pubspec.yaml b/packages/stream_chat_flutter_core/pubspec.yaml index f4b1ef3dea..71330760e9 100644 --- a/packages/stream_chat_flutter_core/pubspec.yaml +++ b/packages/stream_chat_flutter_core/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_chat_flutter_core homepage: https://github.com/GetStream/stream-chat-flutter description: Stream Chat official Flutter SDK Core. Build your own chat experience using Dart and Flutter. -version: 10.4.0 +version: 10.5.0 repository: https://github.com/GetStream/stream-chat-flutter issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues @@ -32,7 +32,7 @@ dependencies: package_info_plus: ">=9.0.1 <11.0.0" rate_limiter: ^1.1.0 rxdart: ^0.28.0 - stream_chat: ^10.4.0 + stream_chat: ^10.5.0 dev_dependencies: build_runner: ^2.15.0 diff --git a/packages/stream_chat_localizations/CHANGELOG.md b/packages/stream_chat_localizations/CHANGELOG.md index 7cdf225466..7c9d3c3bcc 100644 --- a/packages/stream_chat_localizations/CHANGELOG.md +++ b/packages/stream_chat_localizations/CHANGELOG.md @@ -1,8 +1,9 @@ -## Upcoming +## 10.5.0 โœ… Added - Added the message-list accessibility strings for all supported locales, each with a native-language implementation. +- Added `unreadMessagesSeparatorLabel` for all supported locales, showing an unread count. A class that `implements StreamChatLocalizations` must add it. ## 10.4.0 @@ -19,7 +20,6 @@ โœ… Added - Added connection-error translations (`connectionErrorTitle`/`Description`, `slowConnectionErrorTitle`/`Description`, `genericErrorTitle`/`Description`) for all supported locales. -- Added `unreadMessagesSeparatorLabel` for all supported locales, showing a count (e.g. "5 unread messages"). `GlobalStreamChatLocalizations` falls back to the deprecated count-less `unreadMessagesSeparatorText`, so a subclass that extends it keeps showing any custom text it already overrides. A class that `implements StreamChatLocalizations` directly has to add the member itself. ## 10.2.0 diff --git a/packages/stream_chat_localizations/example/pubspec.yaml b/packages/stream_chat_localizations/example/pubspec.yaml index 73d439d125..6e5dfc2279 100644 --- a/packages/stream_chat_localizations/example/pubspec.yaml +++ b/packages/stream_chat_localizations/example/pubspec.yaml @@ -24,8 +24,8 @@ dependencies: cupertino_icons: ^1.0.3 flutter: sdk: flutter - stream_chat_flutter: ^10.4.0 - stream_chat_localizations: ^10.4.0 + stream_chat_flutter: ^10.5.0 + stream_chat_localizations: ^10.5.0 dependency_overrides: stream_chat: diff --git a/packages/stream_chat_localizations/pubspec.yaml b/packages/stream_chat_localizations/pubspec.yaml index 994f695bdc..7bba5a4f5d 100644 --- a/packages/stream_chat_localizations/pubspec.yaml +++ b/packages/stream_chat_localizations/pubspec.yaml @@ -1,6 +1,6 @@ name: stream_chat_localizations description: The Official localizations for Stream Chat Flutter, a service for building chat applications -version: 10.4.0 +version: 10.5.0 homepage: https://github.com/GetStream/stream-chat-flutter repository: https://github.com/GetStream/stream-chat-flutter issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues @@ -27,7 +27,7 @@ dependencies: flutter_localizations: sdk: flutter intl: ^0.20.2 - stream_chat_flutter: ^10.4.0 + stream_chat_flutter: ^10.5.0 dev_dependencies: clock: ^1.1.2 diff --git a/packages/stream_chat_persistence/CHANGELOG.md b/packages/stream_chat_persistence/CHANGELOG.md index c5e8ed8a02..7abc2b4975 100644 --- a/packages/stream_chat_persistence/CHANGELOG.md +++ b/packages/stream_chat_persistence/CHANGELOG.md @@ -1,4 +1,4 @@ -## Upcoming +## 10.5.0 ๐Ÿž Fixed diff --git a/packages/stream_chat_persistence/example/pubspec.yaml b/packages/stream_chat_persistence/example/pubspec.yaml index a6573ca2c6..168c3005af 100644 --- a/packages/stream_chat_persistence/example/pubspec.yaml +++ b/packages/stream_chat_persistence/example/pubspec.yaml @@ -23,8 +23,8 @@ dependencies: cupertino_icons: ^1.0.3 flutter: sdk: flutter - stream_chat: ^10.4.0 - stream_chat_persistence: ^10.4.0 + stream_chat: ^10.5.0 + stream_chat_persistence: ^10.5.0 dependency_overrides: stream_chat: diff --git a/packages/stream_chat_persistence/pubspec.yaml b/packages/stream_chat_persistence/pubspec.yaml index b3f6dd69c0..c9008bdbd4 100644 --- a/packages/stream_chat_persistence/pubspec.yaml +++ b/packages/stream_chat_persistence/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_chat_persistence homepage: https://github.com/GetStream/stream-chat-flutter description: Official Stream Chat Persistence library. Build your own chat experience using Dart and Flutter. -version: 10.4.0 +version: 10.5.0 repository: https://github.com/GetStream/stream-chat-flutter issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues @@ -30,7 +30,7 @@ dependencies: path: ^1.9.1 path_provider: ^2.1.5 sqlite3_flutter_libs: ^0.5.26 - stream_chat: ^10.4.0 + stream_chat: ^10.5.0 dev_dependencies: build_runner: ^2.15.0 diff --git a/sample_app/pubspec.yaml b/sample_app/pubspec.yaml index bdd6b99170..f30acd4a13 100644 --- a/sample_app/pubspec.yaml +++ b/sample_app/pubspec.yaml @@ -1,7 +1,7 @@ name: sample_app description: A new Flutter project. publish_to: "none" -version: 10.4.0 +version: 10.5.0 # Note: The environment configuration and dependency versions are managed by Melos. # @@ -43,9 +43,9 @@ dependencies: marionette_flutter: ^0.6.0 path_provider_android: ">=2.2.5 <2.3.0" rxdart: ^0.28.0 - stream_chat_flutter: ^10.4.0 - stream_chat_localizations: ^10.4.0 - stream_chat_persistence: ^10.4.0 + stream_chat_flutter: ^10.5.0 + stream_chat_localizations: ^10.5.0 + stream_chat_persistence: ^10.5.0 streaming_shared_preferences: ^2.0.0 uuid: ^4.5.3 video_player: ^2.11.1 From efcda4e322c6de63466b4dfe07721755579c003f Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Wed, 30 Sep 2026 15:21:26 +0200 Subject: [PATCH 2/2] docs(ui): fold the AI assistant deprecation into the 10.5.0 Deprecated section Co-Authored-By: Claude Opus 5.5 (1M context) --- packages/stream_chat_flutter/CHANGELOG.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index 1544299d9c..ffa1845f7c 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -31,10 +31,7 @@ - Deprecated `withData` and `withReadStream` on `StreamAttachmentHandler.pickFile` and `StreamFilePicker`; they no longer have any effect. - Deprecated `Translations.unreadMessagesSeparatorText` in favor of `unreadMessagesSeparatorLabel`. - -โš ๏ธ Deprecated - -- Deprecated `AITypingIndicatorView`, `AnimatedDots`, `TypewriterController`, `TypewriterValue`, `TypewriterState`, `TypewriterWidgetBuilder`, `StreamTypewriterBuilder` and `StreamingMessageView`. They have moved to `package:stream_chat_flutter_ai` and will be removed from this package in a future release. Migrate by adding `stream_chat_flutter_ai` to your `pubspec.yaml` and updating the imports. All of them keep their name in the new package except `StreamTypewriterBuilder`, which is now `TypewriterBuilder`. +- Deprecated `AITypingIndicatorView`, `AnimatedDots`, `StreamingMessageView`, `StreamTypewriterBuilder`, `TypewriterController`, `TypewriterValue`, `TypewriterState` and `TypewriterWidgetBuilder`; they moved to `stream_chat_flutter_ai`, where `StreamTypewriterBuilder` is `TypewriterBuilder`. Add that package and update your imports. ๐Ÿž Fixed