PackageTrack
Sign in Get early access

stream_chat_persistence

Official Stream Chat Persistence library. Build your own chat experience using Dart and Flutter.

10.3.0 20K downloads/mo #2226 most downloaded on pub.dev GetStream/stream-chat-flutter

What this package is like to depend on

Last release 9 days ago

14 Aug 2026

Ships fairly regularly

a new release about every 3 weeks

Nearly every release is documented

notes for 73 of 73 stable releases

1 version withdrawn

withdrawn after publishing

6 years old

110 releases · first in 2021

25 releases in the last 12 months

see the full history below

Release timeline

110 releases · Feb 2021 to Aug 2026
2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 110
  1. 10.3.0 14 Aug 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v10.2.0...v10.3.0

    Open source →
    Release notes

    🐞 Fixed

    • Fixed truncated channels being the first to fall out of the 250-channel cap returned by getChannelCids.
    Open source →
  2. 10.2.0 22 Jul 2026
    Release notes

    What's Changed

    • chore(deps): bump actions/checkout from 6 to 7 in the all-actions group by @dependabot[bot] in #2784
    • fix(ui): preserve last-message preview during channel-state reloads by @VelikovPetar in #2774
    • fix(core): Fix StreamChannelListController not handling notificaton.channel_deleted event by @VelikovPetar in #2791
    • perf(persistence): add indexes to speed up offline channel-list reads by @VelikovPetar in #2795
    • fix(core): Fix backwards pagination not working if channel was never opened by @VelikovPetar in #2789
    • feat(ui, localization): comprehensive a11y pass across composer by @xsahil03x in #2796
    • docs(repo): add STYLE_GUIDE.md and TESTING.md adapted from Flutter's guides by @xsahil03x in #2793
    • feat(llc): Sanitize X-Stream-Client to prevent customers overriding internal values by @VelikovPetar in #2790
    • chore(persistence): Remove unused DAO methods by @VelikovPetar in #2754
    • ci(repo): add least-privilege permissions to GitHub Actions workflows by @peter-matkovski in #2798
    • fix(ui): Fix shadowed messages not hidden in the channel list by @VelikovPetar in #2787
    • fix(persistence): treat thread reply pagination limit of 0 as unset by @VelikovPetar in #2803
    • fix(ui): skip markThreadRead for reply-less thread parents by @xsahil03x in #2807
    • fix(samples): cap firebase plugins below broken 16.4.2/5.2.5 releases by @VelikovPetar in #2813
    • fix(llc): normalize strings when comparing ComparableField by @xsahil03x in #2809
    • fix(llc): Don't upsert out-of-window messages on message.updated/message.deleted events by @VelikovPetar in #2794
    • fix(ui): Mark channel read immediately when the unread indicator is dismissed by @VelikovPetar in #2819
    • ci(repo): add e2e testing infrastructure (iOS + Android) by @testableapple in #2777
    • fix(llc): reduce default thread participant and member limits by @VelikovPetar in #2822
    • perf(llc, core): guard channel list event handlers against unnecessary re-sorts by @VelikovPetar in #2824
    • fix(ui): avoid spurious StreamTypingIndicator rebuilds on unchanged typing users by @VelikovPetar in #2826
    • fix(ui): replace get_thumbnail_video with the stream_thumbnail plugin by @xsahil03x in #2829
    • fix(ui): Removed mediakit dependency from sdk by @renefloor in #2828
    • chore(samples): Don't run firebase on linux by @renefloor in #2834
    • chore(repo): release v10.2.0 by @renefloor in #2835

    New Contributors

    Full Changelog: v10.1.0...v10.2.0

    Open source →
    Release notes

    🚀 Performance

    • Add indices on the channel_cid column on the Messages, Members, and Reads tables to improve read times on large databases.
    • Add indices on the message_id column on the Reactions table to improve read times on large databases.
    • Speed up hydrating a page of cached messages (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.
    Open source →
  3. 10.1.0 23 Jun 2026
    Release notes

    What's Changed

    • fix(ui): wire onUserAvatarTap on StreamMessageItem by @xsahil03x in #2743
    • chore(deps): bump the all-actions group across 1 directory with 3 updates by @dependabot[bot] in #2734
    • fix(ui): add copyWith to MessageComposerProps by @xsahil03x in #2744
    • feat(ui): integrate StreamSnackbar into composer hold-to-record by @xsahil03x in #2739
    • docs(repo): sync tutorial example with website tutorial by @xsahil03x in #2746
    • perf(persistence): Move thread messages pagination to SQL by @VelikovPetar in #2688
    • perf(persistence): Move pinned messages pagination to SQL by @VelikovPetar in #2689
    • feat(samples): migrate AppDelegate to use UISceneDelegate by @renefloor in #2745
    • feat(llc, ui, core, localization): gate slash commands by composer state with snackbar feedback by @xsahil03x in #2757
    • fix(llc, core): pause WebSocket reconnect while app is backgrounded by @xsahil03x in #2759
    • feat(llc, core, persistence, ui): Add support for enhanced mentions by @VelikovPetar in #2747
    • ci(repo): trigger conventional PR title check for v9 PRs by @xsahil03x in #2764
    • fix(ui): avoid redundant setState in StreamMessageContent width measurement by @xsahil03x in #2762
    • fix(core,ui): setting value after being disposed by @renefloor in #2766
    • refactor(ui): migrate to stream_core_flutter chat.dart barrel by @xsahil03x in #2765
    • feat(llc, core, persistence): Add support for PredefinedFilters on QueryChannels by @VelikovPetar in #2709
    • docs(ui): update migration with learnings by @renefloor in #2767
    • ci(repo): fail check_db_entities when schemaVersion isn't bumped by @xsahil03x in #2771
    • feat(persistence): Bump DB version by @VelikovPetar in #2770
    • fix(repo): update docs_screenshots channel-list stub for queryChannelsWithResult by @VelikovPetar in #2776
    • fix(llc, ui): thread cooldown by @renefloor in #2738
    • chore(samples): add message-list benchmark page by @xsahil03x in #2779
    • test(ui): Add enhanced mentions docs screenshots by @VelikovPetar in #2778
    • fix(llc): Fixed resetting channel unread count on message.read events delivered for threads by @VelikovPetar in #2780
    • chore(repo): release v10.1.0 by @xsahil03x in #2783

    Full Changelog: v10.0.1...v10.1.0

    Open source →
    Release notes

    ✅ Added

    • Added persistence for enhanced-mention fields on messages: mentionedChannel, mentionedHere, mentionedRoles, mentionedGroupIds, and mentionedGroups.

    🚀 Performance

    • Read only the thread replies matching the PaginationParams from DB when calling MessageDao.getThreadMessagesByParentId instead of reading all replies for the thread and applying pagination in memory.
    • Read only the messages matching the 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.
    • Bump database version.

    🔄 Internal / Non-breaking

    • Removed unused / test-only methods from internal DAO classes.
    Open source →
  4. 10.0.1 09 Jun 2026
    Release notes

    What's Changed

    Full Changelog: v9.25.0...v10.0.1

    Open source →
    Release notes

    ✅ Added

    • Added support for predefined filters for QueryChannels on StreamChatPersistenceClient.

    🔄 Changed

    • Raised minimum versions of bundled dependencies (drift, path, path_provider) to current resolved versions.
    • Raised minimum Flutter to >=3.41.0 and Dart SDK to ^3.11.0.

    🐞 Fixed

    • Fixed channel list re-sorting on refresh or when returning from background.
    Open source →
  5. 10.0.0 28 Jan 2026 withdrawn

    Nothing published for this version

  6. 10.0.0-beta.13 10 Apr 2026 pre-release
    Release notes

    What's Changed

    Full Changelog: v10.0.0-beta.12...v10.0.0-beta.13

    Open source →
    Release notes

    🛑️ Breaking

    • SDK Redesign Changes. For more details, please refer to the migration guide. The SDK redesign introduces a fresher default UI, but also better APIs for customization of the components.
    Open source →
  7. 10.0.0-beta.12 28 Jan 2026 pre-release
    Release notes
    • Included the changes from version 9.23.0.
    Open source →
  8. 10.0.0-beta.11 10 Dec 2025 pre-release
    Release notes
    • Included the changes from version 9.22.0.
    Open source →
  9. 10.0.0-beta.10 03 Dec 2025 pre-release
    Release notes
    • Included the changes from version 9.21.0.
    Open source →
  10. 10.0.0-beta.9 18 Nov 2025 pre-release
    Release notes
    • Included the changes from version 9.20.0.
    Open source →
  11. 10.0.0-beta.8 29 Oct 2025 pre-release
    Release notes

    ✅ 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.

    Open source →
  12. 10.0.0-beta.7 15 Oct 2025 pre-release
    Release notes
    • Added support for Messages.deletedForMe, PinnedMessages.deletedForMe, and Members.deletedMessages fields.

    • Included the changes from version 9.18.0.

    Open source →
  13. 10.0.0-beta.6 24 Sep 2025 pre-release
    Release notes
    • Included the changes from version 9.17.0.
    Open source →
  14. 10.0.0-beta.5 13 Aug 2025 pre-release
    Release notes
    • Included the changes from version 9.16.0.
    Open source →
  15. 10.0.0-beta.4 25 Jul 2025 pre-release
    Release notes
    • 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.

    Open source →
  16. 10.0.0-beta.3 17 Jul 2025 pre-release
    Release notes
    • Included the changes from version 9.14.0.
    Open source →
  17. 10.0.0-beta.2 30 Jun 2025 pre-release
    Release notes
    • Included the changes from version 9.13.0.
    Open source →
  18. 10.0.0-beta.1 18 Jun 2025 pre-release
    Release notes
    Open source →
  19. 9.28.0 14 Aug 2026
    Release notes

    What's Changed

    • fix(ui): enrich link previews for uppercase URL schemes by @xsahil03x in #2844
    • fix(llc, core, ui, localization): hide raw StreamChannel errors behind themed, connection-aware states by @xsahil03x in #2849
    • fix(llc): keep reaction group while its count stays positive by @xsahil03x in #2859
    • chore(repo): support Flutter 3.47 by @VelikovPetar in #2895
    • fix(llc): handle per-channel notification.mark_read events again by @xsahil03x in #2891
    • fix(llc, core): port e2e-suite thread fix and disposed-channel sort crash to v9 by @xsahil03x in #2893
    • fix(llc, persistence): truncated channels sinking to the bottom of a last_updated sort by @VelikovPetar in #2892
    • fix(llc): null ordering for pinned_at and last_message_at channel sorts by @VelikovPetar in #2889
    • fix(llc): update watcher count from realtime events and ignore events after dispose by @VelikovPetar in #2898
    • chore(repo): release v9.28.0 by @VelikovPetar in #2901

    Full Changelog: v9.27.0...v9.28.0

    Open source →
  20. 9.27.0 22 Jul 2026
    Release notes

    What's Changed

    • feat(llc, core, persistence): Add support for PredefinedFilters on QueryChannels(v9) by @VelikovPetar in #2775
    • fix(llc): suppress EquatableMixin deprecation warning in StreamChatError by @VelikovPetar in #2802
    • perf(persistence): Move thread messages pagination to SQL by @VelikovPetar in #2750
    • perf(persistence): Move pinned messages pagination to SQL by @VelikovPetar in #2751
    • chore(persistence): Remove unused DAO methods (v9) by @VelikovPetar in #2755
    • feat(llc): Sanitize X-Stream-Client to prevent customers overriding internal values (v9) by @VelikovPetar in #2799
    • perf(persistence): add indexes to speed up offline channel-list reads (v9) by @VelikovPetar in #2801
    • fix(core): Fix StreamChannelListController not handling notification.channel_deleted event (v9). by @VelikovPetar in #2800
    • fix(ui): skip markThreadRead for reply-less thread parents (v9) by @xsahil03x in #2808
    • fix(ui): Fix shadowed messages not hidden in the channel list by @VelikovPetar in #2788
    • fix(ui): preserve last-message preview during channel-state reloads by @VelikovPetar in #2811
    • fix(core): Fix backwards pagination not working if channel was never opened by @VelikovPetar in #2812
    • fix(llc): normalize strings when comparing ComparableField (v9) by @xsahil03x in #2810
    • fix(llc, core): Fix wrong changelog entries by @VelikovPetar in #2818
    • feat(llc): increase default connect and receive timeout to 30s by @xsahil03x in #2831
    • fix(llc): Don't upsert out-of-window messages on message.updated/message.deleted events by @VelikovPetar in #2815
    • fix(ui): Mark channel read immediately when the unread indicator is dismissed by @VelikovPetar in #2838
    • chore(repo): release v9.27.0 by @xsahil03x in #2840

    Full Changelog: v9.26.0...v9.27.0

    Open source →
  21. 9.26.0 23 Jun 2026
    Release notes

    What's Changed

    • chore(ci): run pana and legacy analyze on v9 branch by @renefloor in #2756
    • fix(llc, core): pause WebSocket reconnect while app is background (v9) by @xsahil03x in #2760
    • fix(ui): avoid redundant setState in MessageCard width measurement [v9] by @xsahil03x in #2763
    • fix(llc): Fix UpsertPushPreferencesResponse null values parsing by @VelikovPetar in #2749
    • fix(persistence): port poll DAO null-user fix and chunked size guard from #2731 by @VelikovPetar in #2752
    • fix(llc): Fixed resetting channel unread count on message.read events delivered for threads [v9] by @VelikovPetar in #2781
    • chore(repo): release v9.26.0 by @xsahil03x in #2782

    Full Changelog: v9.25.0...v9.26.0

    Open source →
  22. 9.25.0 05 Jun 2026
    Release notes

    What's Changed

    • ci(repo): centralize path/draft gating in a per-workflow gate job by @xsahil03x in #2669
    • chore(samples): disable Swift Package Manager for sample_app by @xsahil03x in #2672
    • fix(ci): disable SPM at CI level instead of via pubspec flag by @xsahil03x in #2675
    • chore(repo): add release-pr skill by @xsahil03x in #2657
    • perf(llc): Reduce the number of DB reads in ChatPersistenceClient.getChannelStates() by @VelikovPetar in #2664
    • fix(core): truncate channel state before reloading latest messages by @xsahil03x in #2690
    • fix(ui): auto-scroll on optimistic local messages by @xsahil03x in #2683
    • fix(ui): Don't count anchor corrections in ScrollablePositionedList by @renefloor in #2693
    • refactor(persistence): Store DateTime as ISO-8601 text in DB to preserve sub-seconds precision by @VelikovPetar in #2694
    • fix(ui): guard MessageCard._updateWidthLimit against unlaid RenderBox by @Mounix99 in #2702
    • fix(ui): stop StreamMessageListView from tripping RenderViewport layout-cycle limit by @xsahil03x in #2703
    • chore(repo): sync sample_app version to SDK + add TestFlight internal builds by @xsahil03x in #2705
    • fix(llc, core, ui): isolate channel state from sub-route wraps and smooth thread-open scroll by @xsahil03x in #2704
    • fix(ci): allow fork PRs to post DB entity comments by @xsahil03x in #2714
    • chore(deps): bump the all-actions group across 1 directory with 4 updates by @dependabot[bot] in #2712
    • ci(repo): skip sample app build when targeting master by @xsahil03x in #2720
    • fix(persistence): persist channel team field by @TheoGermain in #2700
    • perf(core, ui): back .of() lookups with StreamStateScope instead of findAncestorStateOfType by @xsahil03x in #2726
    • fix(ci): add multi_json to sample_app Gemfiles by @xsahil03x in #2728
    • perf(persistence): Reduce the number of read message per channel from DB when paginating (part 1) by @VelikovPetar in #2679
    • perf(persistence): Reduce the number of read message per channel from DB when paginating (part 2) by @VelikovPetar in #2681
    • chore(repo): release v9.25.0 by @xsahil03x in #2730

    New Contributors

    Full Changelog: v9.24.0...v9.25.0

    Open source →
    Release notes

    🚀 Performance

    • Reduce the number of DB reads in the ChatPersistenceClient.getChannelStates method.
    • Read only the messages matching the PaginationParams from DB when calling MessageDao.getMessagesByCid instead of reading all messages for the channel and applying pagination in memory.
    • Read only the reactions matching the userId from DB when calling ReactionDao.getReactionsByUserId instead of reading all reactions for the message and filtering in memory.
    • Read only the reactions matching the userId from DB when calling PinnedMessageReactionDao.getReactionsByUserId instead of reading all reactions for the message and filtering in memory.
    • Improve the message read times from DB.

    🐞 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.
    • Fixed missing persistence of the team field on channel entities.

    🔄 Changed

    • Changed how dates are stored in the local cache, from integer seconds to ISO-8601 strings, in order to preserve millisecond precision.
    Open source →
  23. 9.24.0 19 May 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v9.23.0...v9.24.0

    Open source →
    Release notes
    • Updated stream_chat dependency to 9.24.0.
    Open source →
  24. 9.23.0 28 Jan 2026
    Release notes
    • Updated stream_chat dependency to 9.23.0.
    Open source →
  25. 9.22.0 10 Dec 2025
    Release notes

    ✅ Added

    • Added support for ChannelModel.filterTags field.
    Open source →
  26. 9.21.0 03 Dec 2025
    Release notes
    • Updated stream_chat dependency to 9.21.0.
    Open source →
  27. 9.20.0 18 Nov 2025
    Release notes

    ✅ Added

    • Added support for Read.lastDeliveredAt and Read.lastDeliveredMessageId fields to track message delivery receipts.
    Open source →
  28. 9.19.0 29 Oct 2025
    Release notes
    • Updated stream_chat dependency to 9.19.0.
    Open source →
  29. 9.18.0 15 Oct 2025
    Release notes

    ✅ Added

    • Added support for Message.channelRole field.
    • Added support for client.flush() method to clear database.
    • Added support for Channel.messageCount field.
    Open source →
  30. 9.17.0 24 Sep 2025
    Release notes
    • Updated stream_chat dependency to 9.17.0.
    Open source →
  31. 9.16.0 13 Aug 2025
    Release notes
    • Updated stream_chat dependency to 9.16.0.
    Open source →
  32. 9.15.0 25 Jul 2025
    Release notes

    🐞 Fixed

    • Fixed draft message retrieval logic where channel drafts were incorrectly attached to all messages instead of only thread drafts being attached to their respective parent messages.

    ✅ Added

    • Added support for User.avgResponseTime field.
    Open source →
  33. 9.14.0 17 Jul 2025
    Release notes
    • Updated stream_chat dependency to 9.14.0.
    Open source →
  34. 9.13.0 30 Jun 2025
    Release notes
    • Updated stream_chat dependency to 9.13.0.
    Open source →
  35. 9.12.0 17 Jun 2025
    Release notes
    • Updated stream_chat dependency to 9.12.0.
    Open source →
  36. 9.11.0 03 Jun 2025
    Release notes
    • Added support for Message.reactionGroups field.
    Open source →
  37. 9.10.0 15 May 2025
    Release notes
    • Fixed an issue in the getChannelStates method where paginationParams.offset greater than the available channel count would cause an exception. The method now properly handles this edge case.
    Open source →
  38. 9.9.0 06 May 2025
    Release notes
    • Added support for User.teamsRole field.
    Open source →
  39. 9.8.0 16 Apr 2025
    Release notes
    • Added pinnedAt and archivedAt fields on Member.
    • Added support for DraftMessages.
    Open source →
  40. 9.7.0 03 Apr 2025
    Release notes
    • Updated stream_chat dependency to 9.7.0.
    Open source →
  41. 9.6.0 13 Mar 2025
    Release notes
    • Updated stream_chat dependency to 9.6.0.
    Open source →
  42. 9.5.0 12 Mar 2025
    Release notes
    • Added support for Message.restrictedVisibility field.
    • Added support for Member.extraData field.
    Open source →
  43. 9.4.0 14 Feb 2025
    Release notes
    • Updated minimum Flutter version to 3.27.4 for the SDK.
    Open source →
  44. 9.3.0 11 Feb 2025
    Release notes
    • Updated stream_chat dependency to 9.3.0.
    Open source →
  45. 9.2.0 21 Jan 2025
    Release notes
    • Updated stream_chat dependency to 9.2.0.
    Open source →
  46. 9.1.0 09 Jan 2025
    Release notes
    • Updated stream_chat dependency to 9.1.0.
    Open source →
  47. 9.0.0 30 Dec 2024
    Release notes
    • Added support for Poll and PollVote entities in the database.
    • Updated minimum Flutter version to 3.24.5 for the SDK.
    Open source →
  48. 8.3.0 04 Dec 2024
    Release notes
    • Updated stream_chat dependency to 8.3.0.
    Open source →
  49. 8.2.0 11 Nov 2024
    Release notes
    • Updated stream_chat dependency to 8.2.0.
    Open source →
  50. 8.1.0 19 Sep 2024
    Release notes
    • Updated stream_chat dependency to 8.1.0.
    Open source →
  51. 8.0.0 22 Jul 2024
    Release notes
    • Updated stream_chat dependency to 8.0.0.
    Open source →
  52. 8.0.0-beta.3 08 May 2024 pre-release

    Nothing published for this version

  53. 8.0.0-beta.2 09 Jan 2024 pre-release

    Nothing published for this version

  54. 8.0.0-beta.1 04 Dec 2023 pre-release

    Nothing published for this version

  55. 7.3.0 03 Jul 2024
    Release notes

    🔄 Changed

    • Changed minimum Flutter version to 3.19 for the SDK.
    • Updated stream_chat dependency to 7.3.0.
    Open source →
  56. 7.2.2 18 Jun 2024
    Release notes
    • Updated stream_chat dependency to 7.2.2.
    Open source →
  57. 7.2.1 04 Jun 2024
    Release notes
    • Updated stream_chat dependency to 7.2.1.
    Open source →
  58. 7.2.0 03 Apr 2024
    Release notes
    • Updated stream_chat dependency to 7.2.0.
    Open source →
  59. 7.2.0-hotfix.1 04 Apr 2024 pre-release
    Release notes
    Open source →
  60. 7.1.0 06 Mar 2024
    Release notes
    • Updated stream_chat dependency to 7.1.0.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive