kindly 2.0.33
kindly: ^2.0.33 copied to clipboard
Kindly Chat SDK for Flutter - customer support chat widget for iOS and Android. Successor to the kindly_sdk package.
Changelog #
2.0.33 - 2026-06-25 #
Changed #
- Refresh of bundled Android AAR from the latest kindly-ai/sdk-chat-android-sources release. No public API changes.
2.0.32 - 2026-06-25 #
Changed #
- Refresh of bundled iOS xcframework from the latest kindly-ai/sdk-chat-ios-sources release. No public API changes.
2.0.31 - 2026-06-25 #
Changed #
- Refresh of bundled Android AAR from the latest kindly-ai/sdk-chat-android-sources release. No public API changes.
2.0.30 - 2026-06-25 #
Changed #
- Refresh of bundled iOS xcframework from the latest kindly-ai/sdk-chat-ios-sources release. No public API changes.
2.0.29 - 2026-06-17 #
Changed #
- Refresh of bundled iOS xcframework from the latest kindly-ai/sdk-chat-ios-sources release. No public API changes.
2.0.28 - 2026-06-17 #
Changed #
- Refresh of bundled Android AAR from the latest kindly-ai/sdk-chat-android-sources release. No public API changes.
2.0.27 - 2026-06-17 #
Changed #
- Refresh of bundled Android AAR from the latest kindly-ai/sdk-chat-android-sources release. No public API changes.
2.0.26 - 2026-06-17 #
Changed #
- Refresh of bundled Android AAR from the latest kindly-ai/sdk-chat-android-sources release. No public API changes.
2.0.25 - 2026-06-04 #
Changed #
- Refresh of bundled Android AAR from the latest kindly-ai/sdk-chat-android-sources release. No public API changes.
2.0.23 - 2026-06-01 #
Changed #
- Refresh of bundled Android AAR from the latest kindly-ai/sdk-chat-android-sources release. No public API changes.
2.0.22 - 2026-05-31 #
Changed #
- Refresh of bundled Android AAR from the latest kindly-ai/sdk-chat-android-sources release. No public API changes.
2.0.21 - 2026-05-31 #
Changed #
- Refresh of bundled iOS xcframework from the latest kindly-ai/sdk-chat-ios-sources release. No public API changes.
2.0.20 - 2026-05-28 #
Changed #
- Refresh of bundled iOS xcframework from the latest kindly-ai/sdk-chat-ios-sources release. No public API changes.
2.0.19 - 2026-05-28 #
Changed #
- Refresh of bundled iOS xcframework from the latest kindly-ai/sdk-chat-ios-sources release. No public API changes.
2.0.18 - 2026-05-28 #
Changed #
- Refresh of bundled iOS xcframework from the latest kindly-ai/sdk-chat-ios-sources release. No public API changes.
2.0.17 - 2026-05-27 #
Changed #
- Refresh of bundled Android AAR from the latest kindly-ai/sdk-chat-android-sources release. No public API changes.
2.0.16 - 2026-05-27 #
Changed #
- Refresh of bundled iOS xcframework from the latest kindly-ai/sdk-chat-ios-sources release. No public API changes.
2.0.15 - 2026-05-21 #
Changed #
- Refresh of bundled Android AAR from the latest kindly-ai/sdk-chat-android-sources release. No public API changes.
2.0.14 - 2026-05-21 #
Changed #
- Refresh of bundled iOS xcframework from the latest kindly-ai/sdk-chat-ios-sources release. No public API changes.
2.0.13 - 2026-05-21 #
Changed #
- Refresh of bundled Android AAR from the latest kindly-ai/sdk-chat-android-sources release. No public API changes.
2.0.12 - 2026-05-21 #
Changed #
- Refresh of bundled iOS xcframework from the latest kindly-ai/sdk-chat-ios-sources release. No public API changes.
2.0.10 - 2026-05-12 #
Changed #
- Refresh of bundled Android AAR from the latest kindly-ai/sdk-chat-android-sources release. No public API changes.
2.0.9 - 2026-05-10 #
Changed #
- Refresh of bundled Android AAR from the latest kindly-ai/sdk-chat-android-sources release. No public API changes.
2.0.6 - 2026-05-03 #
Changed #
- Android: switched from JitPack to a bundled inline Maven repo. The
package now ships
android/maven-repo/ai/kindly/sdk/<version>/sdk-<version>.{aar,pom}inside the tarball; the Flutter plugin'sbuild.gradledeclares it viamaven { url "$projectDir/maven-repo" }. Replaces thecom.github.kindly-ai:sdk-chat-android:<version>JitPack coordinate withai.kindly:sdk:<version>.- Why: JitPack failed to build versions 1.0.100 / 1.0.101 / 1.0.102 of the Android SDK with opaque "Error building" errors on its side, so we couldn't reference the latest deploys from kindly. The bundled- inline approach has zero external dependencies — no JitPack, no customer-side repo declarations.
- Customer impact: none in default Flutter setups. The
allprojectsblock in the kindly plugin'sbuild.gradleexposes the local repo transparently. Strict-mode setups (those that setdependencyResolutionManagement.repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOSinsettings.gradle) need to either relax that mode or add the kindly path to their ownsettings.gradle'sdependencyResolutionManagement.repositories. - Bundled Android SDK version in this release: 1.0.102 (latest as
of this publish, fetched from
kindly-ai/sdk-chat-androidat tag).
Fixed #
- CI: post-publish housekeeping is now best-effort, never fails the
workflow. Previous releases failed if the post-publish git tag /
bump / push step had any issue, even though the package was already
successfully on pub.dev. Wrapped the post-publish section in a
blockwithfailed_when: falseeverywhere — the publish is what matters, and any housekeeping warning is logged loudly without blocking. - CI: post-publish auto-adds a CHANGELOG stub for the bumped version, eliminating the recurring trap where the next CI publish fails dry-run validation with "CHANGELOG.md doesn't mention current version".
- CI: tag creation is idempotent. If
v<version>already exists (e.g., a manual local publish followed by a CI re-attempt), the pipeline logs and continues instead of erroring out. - CI:
bundle-native-sdks.ymlrewrites build.gradle'sai.kindly:sdk:<version>coord to match android-source'sbumpversion.cfg current_versionat bundle time. Previously the version was hardcoded and would drift out of sync with whatever the source pipeline just deployed.
2.0.5 - 2026-05-03 #
Internal #
- No content changes vs 2.0.4. This release is the cross-repo CI validating
the end-to-end auto-republish flow on the Android source side after the
1.0.101 deploy. The bundled JitPack reference is unchanged
(
com.github.kindly-ai:sdk-chat-android:1.0.99) — JitPack's build for 1.0.100 / 1.0.101 errored on its side; we'll bump the reference once that's resolved or we mirror via a different route.
2.0.4 - 2026-05-02 #
Fixed #
- Android: SDK Kotlin 2.3.0 metadata + missing transitive deps. Earlier
versions bundled
kindlysdk.aarviaimplementation files(...), which AGP 8.x rejects inside any module that itself produces an AAR ("Direct local .aar file dependencies are not supported"), and which doesn't propagate the AAR's POM transitive deps so consumer apps crash at launch withClassNotFoundException: okhttp3.Interceptor. Switched to a Maven dep on the JitPack-served public release repo:implementation 'com.github.kindly-ai:sdk-chat-android:1.0.99'. - Android: Kotlin 2.1.0 → 2.3.20 (matches
android-source's upgrade, resolves "Module was compiled with an incompatible version of Kotlin" errors), AGP 7.3.0 → 8.6.0, JVM target 1.8 → 17. - Android:
AuthTokenCallbackis now a typealias (was an interface) in the upstream SDK. The plugin'sKindlyPlugin.ktwas rewritten from anobject : AuthTokenCallback { override fun getAuthToken() }to a lambda matching the new typealias signature(chatId) -> Deferred<String>.
Customer setup change #
If your app's android/settings.gradle uses
dependencyResolutionManagement.repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS,
you must also add maven { url 'https://jitpack.io' } to that
dependencyResolutionManagement block — kindly declares JitPack via
allprojects in its plugin build.gradle, which is silently ignored
under strict mode. Default Flutter setups don't need any change.
2.0.3 - 2026-05-02 #
Internal #
- Refresh of bundled iOS xcframework + Android AAR from the latest
kindly-ai/sdk-chat-ios-sourcesandkindly-ai/sdk-chat-android-sourcesreleases. No public API changes.
2.0.2 - 2026-05-02 #
Fixed #
- 2.0.1 was published with a missing iOS xcframework (working-directory
state issue during a manual publish). iOS builds against
kindly: ^2.0.1fail atpod installwith a missing-vendored-framework error. 2.0.2 re-ships the same source with the proper signedKindlySDK.xcframeworkbundled. All users of 2.0.1 should upgrade to 2.0.2.
2.0.1 - 2026-05-02 #
Added #
KindlySDK.setDelegate(...)andKindlySDK.clearDelegate()— host apps can now register the same three callbacks the iOS / Android SDKs expose viaKindlyChatClientDelegate/KindlySDKInteraction:onButtonPressed(button, chatLog)— fired when the user taps a chat button. Fire-and-forget, no return value.shouldHandleLink(url) -> bool— asked before the SDK opens a link tapped inside chat. Returnfalseto take over (e.g. route via host app's deep linker);true(default) lets the SDK handle.shouldHandleNotification(notification) -> bool— asked for every decrypted Kindly silent push. Same return semantics.
- The two synchronous-bool callbacks block the native calling thread on a
DispatchSemaphore(iOS) /CompletableDeferred(Android) with a 5-second timeout. After timeout the SDK falls back to its defaulttrue.
Internal #
bundle-native-sdks.yml: prerequisite path / Xcode / Gradle checks now gated on thebundle_onlyparameter so iOS-only and Android-only CI runs don't fail on missing sibling-repo paths.
2.0.0 - 2026-05-02 #
Renamed #
The package has been renamed from kindly_sdk to kindly. This is the only breaking change in 2.0.0 — the public API surface is identical to what was being prepared as kindly_sdk 1.1.0. To migrate:
dependencies:
- kindly_sdk: ^1.0.1
+ kindly: ^2.0.0
-import 'package:kindly_sdk/kindly_sdk.dart';
+import 'package:kindly/kindly.dart';
Nothing else changes — KindlySDK.start(...), all theme calls, all event handlers continue to work identically.
The legacy kindly_sdk package is now discontinued on pub.dev with a successor pointer to this package; new releases happen here.
Added (carried over from never-published 1.1.0) #
KindlySDK.setLanguage(languageCode)— update language for the current session.KindlySDK.sendMessage(text, newContext: ...)— programmatically send a user message; resolves with the reconciled message map (id,text,created,sender).KindlySDK.kill()— completely tear down the SDK; complementsendChat()which only ends the chat session.KindlySDK.handleUrl(url)— handle Kindly deep-link URLs (kindly://chat/dialogue/{id}).KindlySDK.callHandover(callback)— initiate handover to a human agent and receive a callback when the handover begins. Replaces the misnamedsetHandoverCallback(kept as a deprecated alias).
Fixed (carried over from never-published 1.1.0) #
- iOS:
start()now actually wires theauthTokenCallbackthrough to the native SDK (previously hard-coded tonil). - iOS: every method handler now invokes the real Kindly SDK —
closeChat,endChat,setCustomTheme,setNewContext,clearNewContext,saveAuthToken,setAPNSDeviceToken,handleNotification,isKindlyNotification,triggerDialogue,setVerboseLogging,setCrashReporting,clearCustomTheme,isChatDisplayedwere all stubbed. - iOS:
isChatDisplayednow reflects real state by subscribing toKindlySDK.state. - Android: SDK imports are no longer commented out; placeholder
AuthTokenCallback/CallbackHandoverinterfaces removed in favour of the real ones. - Android: auth callback is now passed into
ChatKindlySDK.start(previously created but discarded). - Android:
triggerDialogue,setVerboseLogging,setCrashReporting,saveNotificationTokenwere reading args from a non-existent map key — now read the bare argument as Dart sends it. - Android:
handleNotification/isKindlyNotificationreconstruct aRemoteMessagefrom the data map so the SDK methods can be invoked. - Android: handover callback signature aligned with the SDK's
CallbackHandover.callHandover()(was(event, data)).
1.1.0 - 2026-05-01 #
Added #
KindlySDK.setLanguage(languageCode)— update language for the current session.KindlySDK.sendMessage(text, newContext: ...)— programmatically send a user message; resolves with the reconciled message map (id,text,created,sender).KindlySDK.kill()— completely tear down the SDK; complementsendChat()which only ends the chat session.KindlySDK.handleUrl(url)— handle Kindly deep-link URLs (kindly://chat/dialogue/{id}).KindlySDK.callHandover(callback)— initiate handover to a human agent and receive a callback when the handover begins. Replaces the misnamedsetHandoverCallback(kept as a deprecated alias).
Fixed #
- iOS:
start()now actually wires theauthTokenCallbackthrough to the native SDK (previously hard-coded tonil). - iOS: every method handler now invokes the real Kindly SDK —
closeChat,endChat,setCustomTheme,setNewContext,clearNewContext,saveAuthToken,setAPNSDeviceToken,handleNotification,isKindlyNotification,triggerDialogue,setVerboseLogging,setCrashReporting,clearCustomTheme,isChatDisplayedwere all stubbed. - iOS:
isChatDisplayednow reflects real state by subscribing toKindlySDK.state. - Android: SDK imports are no longer commented out; placeholder
AuthTokenCallback/CallbackHandoverinterfaces removed in favour of the real ones. - Android:
authcallback is now passed intoChatKindlySDK.start(previously created but discarded). - Android:
triggerDialogue,setVerboseLogging,setCrashReporting,saveNotificationTokenwere reading args from a non-existent map key — now read the bare argument as Dart sends it. - Android:
handleNotification/isKindlyNotificationreconstruct aRemoteMessagefrom the data map so the SDK methods can be invoked. - Android: handover callback signature aligned with the SDK's
CallbackHandover.callHandover()(was(event, data)). - Example app & integration test imports fixed (
package:kindly_sdk/kindly_sdk.dart).
Notes #
eventsandstatestreams from the native EntryPoints (Combine on iOS, Flow on Android) are not yet exposed on the Dart side. Adding them requires a FlutterEventChanneland is tracked for a follow-up release.KindlySDKInteraction(Android button-press / link-intercept / notification delegate) is not yet exposed on the Dart side.
1.0.1 - 2025-07-11 #
Documentation #
- Updated README.md - removed Example and Support sections All notable changes to this project will be documented in this file.
1.0.0 - 2025-07-10 #
Initial Release #
Features
- 🚀 Complete Flutter bridge to native Kindly Chat SDKs (iOS & Android)
- 🎨 Customizable themes with full color control
- 🔐 JWT authentication support with callback mechanism
- 🌍 Multi-language support
- 💬 Real-time chat functionality
- 📱 Native iOS and Android implementations
- 🔔 Push notification support (APNS for iOS, FCM for Android)
- 🎯 Dialogue triggering capabilities
- 📊 Context data support for personalized conversations
- 🐛 Crash reporting and verbose logging options
API Methods
start()- Initialize the SDK with bot key and optional auth callbackdisplayChat()- Show the chat interfacelaunchChat()- Launch chat with optional dialogue triggercloseChat()- Close the chat interfaceendChat()- End the chat session completelysetCustomTheme()- Customize chat appearanceclearCustomTheme()- Reset to default theme (Android only)setNewContext()- Set contextual user dataclearNewContext()- Clear context datasaveAuthToken()- Save authentication tokensetAPNSDeviceToken()- Set iOS push notification tokensaveNotificationToken()- Set Android push notification tokenhandleNotification()- Process incoming notificationsisKindlyNotification()- Check if notification is from KindlytriggerDialogue()- Trigger specific dialogueclearTriggerDialogue()- Clear triggered dialogue (Android only)setHandoverCallback()- Set handover callback (Android only)isChatDisplayed- Check if chat is currently displayedsetVerboseLogging()- Enable/disable verbose loggingsetCrashReporting()- Enable/disable crash reporting
Platform Support
- iOS 12.0+
- Android API Level 21+
- Flutter 2.0.0+
Dependencies
- Native Kindly iOS SDK (via CocoaPods/SPM)
- Native Kindly Android SDK (via JitPack)