flutter_chat_sdk 0.2.1
flutter_chat_sdk: ^0.2.1 copied to clipboard
A backend-agnostic Flutter chat SDK with offline-first support, real-time sync, and a persistent outbound queue that survives app restarts. Bring your own backend via the ChatAdapter interface.
Changelog #
0.2.1 #
Fixes #
- Fix GitHub Actions publishing to pub.dev by using the official
dart-lang/setup-dartreusable workflow for OIDC authentication.
0.2.0 #
First public open-source release after moving the SDK from internal use to a public package.
Notes #
- Establishes the public
0.xrelease line for the package. - Recommended for early production adoption while the public API
continues to mature toward
1.0.0.
0.1.2 #
Breaking Changes #
- Removed
Conversation.shareCodeandConversation.expiresAtfields — these were specific to a particular backend and do not belong in a backend-agnostic SDK - Removed
CreateConversationParams.expiresInparameter - Removed
JoinConversationParamsclass - Removed
getShareCode(),joinConversation(), andvalidateConversationCode()fromChatRepository,ChatAdapter, andChat— join-by-code is a backend-specific feature that should be implemented in the adapter layer - Removed
Chat.joinConversation()andChat.getShareCode()from the public API - Database schema bumped to v8:
share_codeandexpires_atcolumns are dropped from theconversationstable (automatic migration runs on first launch)
Bug Fixes #
Chat.createConversation()now throws a clearStateErrorinstead of crashing with a null pointer if the adapter returnsnullfor a newly created conversation
Code Quality #
ConversationMode.fromString()now only accepts'standard'and'ephemeral'— removed undocumented legacy string aliases- Removed an internal one-time data migration that was not applicable to new installations
- Cleaned up internal comments that referenced implementation details of a specific backend
0.1.1 #
Bug Fixes #
- Outbound queue now skips processing when the adapter is disconnected — optimistic messages correctly stay in
pendingstate until a connection is established - Incoming
PinEventnow replaces the previously pinned message instead of accumulating multiple pinned messages getConversations()no longer hides conversations whose participant list has not yet been loaded
Code Quality #
- Renamed public entrypoint from
lib/chat.darttolib/flutter_chat_sdk.dart(import:package:flutter_chat_sdk/flutter_chat_sdk.dart) - All boolean parameters in the public API are now named (
{required bool isTyping},{required bool isLoading}) - Removed
ConversationExtensionsmethods that were dead code shadowingConversationclass members OutboundOperationfactory methods converted to named constructors
0.1.0 #
Initial open-source release.
- Backend-agnostic
ChatAdapterinterface — bring your own backend - Offline-first
OutboundQueuewith persistent SQLite storage, exponential backoff retry, and crash recovery SyncEnginewith initial sync, incremental sync, and per-conversation syncChatDatabaseinterface backed by Drift (SQLite), with optional SQLCipher encryption viaDatabaseEncryptionConfigChatIdentityProviderfor early SDK initialization before user login- Reactive
watchConversations()andwatchMessages()streams - Optimistic UI for send, react, pin, star, and archive operations
- Flutter widgets:
ConversationsBuilder,MessagesBuilder,ConnectionStateBuilder HttpChatAdapterandSocketChatAdapterbase classes for single-transport adapters