NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2729 most downloaded on pub.dev
Official Stream Chat Persistence library. Build your own chat experience using Dart and Flutter.
Last release 8 days ago
30 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
6 years old
115 releases · first in 2021
chore(ui): deprecate AI assistant components moved to stream_chat_flutter_ai by @renefloor in #2988
channel.dart into focused files by @VelikovPetar in #2930StreamChannelPage by @VelikovPetar in #2916Full Changelog: v10.4.0...v10.5.0
One column per quarter.
🐞 Fixed
lastSyncAt silently doing nothing after the database was reset, which lost the events missed while offline.chore(llc): deprecate StreamChatClient.unflagMessage and unflagUser by @VelikovPetar in #2923
StreamChatClient.unflagMessage and unflagUser by @VelikovPetar in #2923ready future on connect by @xsahil03x in #2927Full Changelog: v10.3.0...v10.4.0
🔄 Changed
>=3.44.0 and Dart SDK to ^3.12.0.chore(samples): migrate from flutter_app_badger to app_badge_plus by @xsahil03x in #2836
onReactionPicked by @w830207 in #2823StreamBackButton unread count by @VelikovPetar in #2816pinned_at and last_message_at channel sorts by @VelikovPetar in #2878last_updated sort by @VelikovPetar in #2880Full Changelog: v10.2.0...v10.3.0
🐞 Fixed
getChannelCids.chore(deps): bump actions/checkout from 6 to 7 in the all-actions group by @dependabot [bot] in #2784
StreamChannelListController not handling notificaton.channel_deleted event by @VelikovPetar in #2791X-Stream-Client to prevent customers overriding internal values by @VelikovPetar in #2790shadowed messages not hidden in the channel list by @VelikovPetar in #2787message.updated/message.deleted events by @VelikovPetar in #2794Full Changelog: v10.1.0...v10.2.0
🚀 Performance
channel_cid column on the Messages, Members, and Reads tables to improve read times on large databases.message_id column on the Reactions table to improve read times on large databases.MessageDao/PinnedMessageDao): derive each message's own reactions from the already-fetched reactions instead of issuing a second query, and stop re-fetching/re-hydrating quoted messages that are already part of the loaded page.🐞 Fixed
MessageDao.getThreadMessagesByParentId now treats a PaginationParams.limit of 0 as "unset" and returns all matching replies, instead of returning none.fix(ui): wire onUserAvatarTap on StreamMessageItem by @xsahil03x in #2743
PredefinedFilters on QueryChannels by @VelikovPetar in #2709message.read events delivered for threads by @VelikovPetar in #2780Full Changelog: v10.0.1...v10.1.0
✅ Added
mentionedChannel, mentionedHere, mentionedRoles, mentionedGroupIds, and mentionedGroups.🚀 Performance
PaginationParams from DB when calling MessageDao.getThreadMessagesByParentId instead of reading all replies for the thread and applying pagination in memory.PaginationParams from DB when calling PinnedMessageDao.getMessagesByCid instead of reading all pinned messages for the channel and applying pagination in memory.🐞 Fixed
MessageDao.getThreadMessagesByParentId now honours all PaginationParams cursor variants (lessThan/lessThanOrEqual/greaterThan/greaterThanOrEqual) and returns the page of replies closest to the cursor.PinnedMessageDao.getMessagesByCid now honours PaginationParams.lessThanOrEqual and PaginationParams.greaterThanOrEqual (inclusive of the cursor message), in addition to the existing strict lessThan/greaterThan.PinnedMessageDao.getMessagesByCid with a forward cursor (greaterThan/greaterThanOrEqual) and a limit now returns the messages immediately AFTER the pivot, instead of the channel tail.🔄 Internal / Non-breaking
chore(repo): remove deprecated classes, methods, and properties by @xsahil03x in #2306
attachmentPickerOptionsBuilder by @xsahil03x in #2415SampleAppConfig and modernize UI architechture by @xsahil03x in #2614messageLimit is respected in getChannelStates by @VelikovPetar in #2717master to v10.0.0 (08.06.2026) by @VelikovPetar in #2731Full Changelog: v9.25.0...v10.0.1
✅ Added
QueryChannels on StreamChatPersistenceClient.🔄 Changed
drift, path, path_provider) to current resolved versions.>=3.41.0 and Dart SDK to ^3.11.0.🐞 Fixed
Nothing published for this version
feat(repo)!: design refresh by @xsahil03x in #2503
Full Changelog: v10.0.0-beta.12...v10.0.0-beta.13
🛑️ Breaking
Included the changes from version `9.23.0`.
9.23.0.Included the changes from version `9.22.0`.
9.22.0.Included the changes from version `9.21.0`.
9.21.0.Included the changes from version `9.20.0`.
9.20.0.Added a new StreamChatPersistenceClient.deleteMessagesFromUser() method to delete all messages from a specific user across all channels.
✅ Added
Added a new StreamChatPersistenceClient.deleteMessagesFromUser() method to delete
all messages from a specific user across all channels.
Added a new messageLimit parameter to the getChannelStates method
to limit the number of messages fetched per channel.
Included the changes from version 9.19.0.
Added support for Messages.deletedForMe, PinnedMessages.deletedForMe, and Members.deletedMessages fields.
Added support for Messages.deletedForMe, PinnedMessages.deletedForMe, and
Members.deletedMessages fields.
Included the changes from version 9.18.0.
Included the changes from version `9.17.0`.
9.17.0.Included the changes from version `9.16.0`.
9.16.0.Added support for Location entity in the database.
Added support for Location entity in the database.
Added support for emojiCode and updatedAt fields in Reaction entity.
Included the changes from version 9.15.0.
Included the changes from version `9.14.0`.
9.14.0.Included the changes from version `9.13.0`.
9.13.0.Updated stream_chat dependency to `10.0.0-beta.1`.
stream_chat dependency to 10.0.0-beta.1.perf(llc): speed up converting models to and from JSON by @xsahil03x in #3001
Full Changelog: v9.30.0...v9.31.0
fix(llc): Fix members removed from a channel keeping their read state in the channel state (v9) by @VelikovPetar in #2967
Full Changelog: v9.29.0...v9.30.0
chore(llc): deprecate StreamChatClient.unflagMessage and unflagUser (v9) by @VelikovPetar in #2924
flutter-version-bump skill for v9 by @VelikovPetar in #2902StreamChatClient.unflagMessage and unflagUser (v9) by @VelikovPetar in #2924ready future, don't let reconnect recovery throw into the root zone by @xsahil03x in #2939Full Changelog: v9.28.0...v9.29.0
fix(ui): enrich link previews for uppercase URL schemes by @xsahil03x in #2844
last_updated sort by @VelikovPetar in #2892pinned_at and last_message_at channel sorts by @VelikovPetar in #2889Full Changelog: v9.27.0...v9.28.0
fix(llc): suppress EquatableMixin deprecation warning in StreamChatError by @VelikovPetar in #2802
PredefinedFilters on QueryChannels(v9) by @VelikovPetar in #2775EquatableMixin deprecation warning in StreamChatError by @VelikovPetar in #2802X-Stream-Client to prevent customers overriding internal values (v9) by @VelikovPetar in #2799StreamChannelListController not handling notification.channel_deleted event (v9). by @VelikovPetar in #2800shadowed messages not hidden in the channel list by @VelikovPetar in #2788message.updated/message.deleted events by @VelikovPetar in #2815Full Changelog: v9.26.0...v9.27.0
chore(ci): run pana and legacy analyze on v9 branch by @renefloor in #2756
UpsertPushPreferencesResponse null values parsing by @VelikovPetar in #2749message.read events delivered for threads [v9] by @VelikovPetar in #2781Full Changelog: v9.25.0...v9.26.0
ci(repo): centralize path/draft gating in a per-workflow gate job by @xsahil03x in #2669
ChatPersistenceClient.getChannelStates() by @VelikovPetar in #2664DateTime as ISO-8601 text in DB to preserve sub-seconds precision by @VelikovPetar in #2694Full Changelog: v9.24.0...v9.25.0
🚀 Performance
ChatPersistenceClient.getChannelStates method.PaginationParams from DB when calling MessageDao.getMessagesByCid instead of reading all messages for the channel and applying pagination in memory.userId from DB when calling ReactionDao.getReactionsByUserId instead of reading all reactions for the message and filtering in memory.userId from DB when calling PinnedMessageReactionDao.getReactionsByUserId instead of reading all reactions for the message and filtering in memory.🐞 Fixed
MessageDao.getMessagesByCid now honours PaginationParams.lessThanOrEqual and PaginationParams.greaterThanOrEqual (inclusive of the cursor message), in addition to the existing strict lessThan/greaterThan.MessageDao.getMessagesByCid now treats PaginationParams.greaterThan as strict (exclusive of the cursor), matching the PaginationParams contract and the existing lessThan behaviour.MessageDao.getMessagesByCid with a forward cursor (greaterThan/greaterThanOrEqual) and a limit now returns the messages immediately AFTER the pivot, instead of the channel tail — mirroring how lessThan already returned the messages immediately before the pivot.team field on channel entities.🔄 Changed
fix(llc): bump jose floor to 0.3.5+1 for CVE-2026-34240 by @xsahil03x in #2658
pana reports by @VelikovPetar in #2656filter param in Client.queryDrafts by @VelikovPetar in #2647SortedListX.merge by @xsahil03x in #2660Full Changelog: v9.23.0...v9.24.0
Updated stream_chat dependency to `9.23.0`.
stream_chat dependency to 9.23.0.Added support for ChannelModel.filterTags field.
✅ Added
ChannelModel.filterTags field.Updated stream_chat dependency to `9.21.0`.
stream_chat dependency to 9.21.0.Added support for Read.lastDeliveredAt and Read.lastDeliveredMessageId fields to track message delivery receipts.
✅ Added
Read.lastDeliveredAt and Read.lastDeliveredMessageId fields to track message
delivery receipts.Updated stream_chat dependency to `9.19.0`.
stream_chat dependency to 9.19.0.Added support for Message.channelRole field.
✅ Added
Message.channelRole field.client.flush() method to clear database.Channel.messageCount field.Updated stream_chat dependency to `9.17.0`.
stream_chat dependency to 9.17.0.Updated stream_chat dependency to `9.16.0`.
stream_chat dependency to 9.16.0.Fixed draft message retrieval logic where channel drafts were incorrectly attached to all messages instead of only thread drafts being attached to the
🐞 Fixed
✅ Added
User.avgResponseTime field.Updated stream_chat dependency to `9.14.0`.
stream_chat dependency to 9.14.0.Updated stream_chat dependency to `9.13.0`.
stream_chat dependency to 9.13.0.Updated stream_chat dependency to `9.12.0`.
stream_chat dependency to 9.12.0.Added support for Message.reactionGroups field.
Message.reactionGroups field.Fixed an issue in the getChannelStates method where paginationParams.offset greater than the available channel count would cause an exception. The met
getChannelStates method where paginationParams.offset greater than the
available channel count would cause an exception. The method now properly handles this edge case.Added support for User.teamsRole field.
User.teamsRole field.Added pinnedAt and archivedAt fields on Member.
pinnedAt and archivedAt fields on Member.Updated stream_chat dependency to `9.7.0`.
stream_chat dependency to 9.7.0.Updated stream_chat dependency to `9.6.0`.
stream_chat dependency to 9.6.0.Added support for Message.restrictedVisibility field.
Message.restrictedVisibility field.Member.extraData field.Updated minimum Flutter version to 3.27.4 for the SDK.
Updated stream_chat dependency to `9.3.0`.
stream_chat dependency to 9.3.0.Updated stream_chat dependency to `9.2.0`.
stream_chat dependency to 9.2.0.Updated stream_chat dependency to `9.1.0`.
stream_chat dependency to 9.1.0.Added support for Poll and PollVote entities in the database.
Poll and PollVote entities in the database.Updated stream_chat dependency to `8.3.0`.
stream_chat dependency to 8.3.0.Updated stream_chat dependency to `8.2.0`.
stream_chat dependency to 8.2.0.Updated stream_chat dependency to `8.1.0`.
stream_chat dependency to 8.1.0.Updated stream_chat dependency to `8.0.0`.
stream_chat dependency to 8.0.0.Nothing published for this version
Nothing published for this version
Nothing published for this version
Changed minimum Flutter version to 3.19 for the SDK.
🔄 Changed
stream_chat dependency to 7.3.0.Your coding agent can read these notes before it upgrades. Set up the MCP server →