Changelog
All notable changes to the crisp_chat package are documented here. For the full changelog, see CHANGELOG.md on GitHub.
2.7.0
Added
FlutterCrispChat.onCrispEvent— a broadcastStream<CrispChatEvent>of native Crisp SDK events:sessionLoaded,chatOpened,chatClosed,messageSent,messageReceived, and (Android-only)notificationReceived. See Chat Events. Not supported on Web/desktop.
Changed
- Added the
FlutterFrameworkSPM dependency toios/crisp_chat/Package.swift, required by Flutter 3.44+'s Swift Package Manager plugin support for plugins thatimport Flutterdirectly. - Upgraded Crisp Android SDK from
2.0.20to2.0.23— crash fixes plus an additiveonNotificationReceivedmethod, now exposed asCrispEventType.notificationReceived.
Fixed
- Fixed iOS notification tap never opening the chatbox on cold start or background resume (#169).
Security
- Resolved four Dependabot alerts in
docsrc/via avite@^6.4.3npm override (GHSA-fx2h-pf6j-xcff, GHSA-v6wh-96g9-6wx3, GHSA-4w7w-66w2-5vf9, GHSA-67mh-4wv8-2f99). - Downgraded docsrc build toolchain from
vitepress@2.0.0-alpha.17tovitepress@1.6.4to resolve two high-severity vite 7.x CVEs.
Documentation
- docsrc PageSpeed / SEO / AEO improvements (Lighthouse mobile performance 69 → 72+, CLS now 0):
- Re-encoded
logo.png(was a 2048×2048 JPEG mislabeled.png, 89.7 KB) to a true 256×256 PNG at 12 KB; resizedfirebase-logo.pngandcrisp-logo.pngto their display size. - Resized the home hero image to match its max display size at 2x retina.
- Self-hosted the "Crisp" sponsor logo instead of hotlinking Webflow's CDN.
- Added explicit
width/heightto all images (closes Lighthouse'sunsized-imagesaudit),loading="lazy"on below-the-fold images, andfetchpriority="high"+ a preload hint on the hero image. - Converted the Google Fonts stylesheet to a non-render-blocking preload + swap pattern.
- Added
FAQPageJSON-LD structured data to the FAQ page, and allms.txtfile summarizing the project for AI answer engines.
- Re-encoded
2.6.0
Added
FlutterCrispChat.openHelpdesk()— opens the Crisp Helpdesk/FAQ search screen directly on all platforms (closes #158). Android/iOS use the native SDK; Web and desktop push$crisp.push(["do", "helpdesk:search"])via the Crisp Web Chat SDK.FlutterCrispChat.openHelpdeskArticle()— opens a specific helpdesk article bylocaleandslug, with optionaltitleandcategory, on all platforms. Android/iOS use the native SDK; Web and desktop push$crisp.push(["do", "helpdesk:article:open", [...]]). See Helpdesk / FAQ for full details.
Fixed
- Fixed iOS Swift Package Manager build error — added explicit
UIKitlinker setting toPackage.swift(#161). - Fixed spurious
"can not find webview for id: 0"log noise on desktop — added startup delay before polling and suppressed transient initialisation error.
Security
- Fixed high-severity esbuild RCE vulnerability (GHSA-gv7w-rqvm-qjhr) in
docsrc/dev tooling — bumped esbuild override to^0.28.0(#159). - Fixed low-severity esbuild path traversal vulnerability (GHSA-g7r4-m6w7-qqqr) in
docsrc/dev tooling — bumped esbuild override to^0.28.1(#160).
Documentation
- Added blog post covering the multi-platform
crisp_chatFlutter plugin expansion to Web and desktop. - Added Helpdesk / FAQ documentation page with full usage examples for all platforms.
- docsrc PageSpeed / SEO improvements: local asset hosting, non-render-blocking font loading, Open Graph / Twitter Card meta, canonical links, JSON-LD structured data, and CLS fixes.
2.5.0
Added
- Web support (Crisp Web Chat SDK via
client.crisp.chat). - Desktop support for macOS, Windows, and Linux (
desktop_webview_window+ browser fallback). FlutterCrispChat.markMessagesAsRead()— RESTPATCHto clearunread.visitor(iOS read-receipt workaround; also on Android/Web/desktop with REST credentials).FlutterCrispChat.isVideoCallsSupported()— check whether the current build supports Crisp calls (iOS WebRTC variant, or Web/desktop).- Optional iOS video/audio calls (build-time opt-in):
- CocoaPods:
$CrispChatWebRTC = trueinios/Podfile(Crisp/CrispWebRTC, ~10 MB larger). - SPM:
CRISP_CHAT_WEBRTC=truebefore build;Package.swiftselectsCrispWebRTCautomatically. - Android native video not supported yet (Crisp Android SDK #181).
- CocoaPods:
- Documentation: Supported platforms guide; Crisp dashboard domain lock guidance (#148); iOS unread-count limitation (troubleshooting and unread messages).
Changed
- Minimum Dart SDK 3.5.0 and Flutter 3.24.0.
openChatboxFromNotificationandsetOnNotificationTappedCallbackare no-ops on Web/desktop.- Example app extended with linux, macos, and windows runners.
- GitHub Actions CI (analyze + test on Ubuntu).
Breaking
- Apps on Flutter < 3.24 or Dart < 3.5 must stay on 2.4.8 for mobile-only usage.
- New dependencies:
desktop_webview_window,http,url_launcher,web.
2.4.8
Fixed
- Fixed iOS Swift Package Manager integration (broken since
2.4.2): package resolution, product namecrisp-chat, and Swift-only SPM target. - Consolidated iOS Swift sources under
ios/crisp_chat/Sources/crisp_chat/for SPM and CocoaPods. - Restored
ModalPresentationStyle.popovermapping toUIModalPresentationStyle.popoverwith iPad popover anchor configuration.
2.4.7
Added
- Added
signatureparameter toUserfor Crisp Identity Verification on Android and iOS.
Changed
- Upgraded Crisp Android SDK from
2.0.18to2.0.20.- Added mobile SDK specific strings localization.
- #232 Added missing mobile SDK specific strings localization.
Fixed
- Fixed issue: #132 - [iOS] Black screen after closing chat (fullScreen) / tap-through when open (overFullScreen)
2.4.6
Added
modalPresentationStyleparameter toCrispConfigfor iOS modal presentation style configurationModalPresentationStyleenum with options:fullScreen,pageSheet,formSheet,overFullScreen,overCurrentContext, andpopover- Default modal presentation style is set to
fullScreento prevent touch events from passing through to the underlying Flutter UI
Changed
- Upgraded Crisp Android SDK from
2.0.17to2.0.18- Fixed crash on message deserialization when origin is null
Fixed
- Fixed issue where
enableNotifications: falseinCrispConfigwas being ignored on iOS, causing the Crisp SDK to still prompt for push notification permissions after sending the first message
2.4.5
Changed
- Upgraded Crisp Android SDK from
2.0.16to2.0.17- Scroll to last message after visitor sent it
- Updated smileys sorting according to Web dashboard
2.4.4
Added
CrispChatNotificationService— a customFirebaseMessagingServicethat handles Crisp push notifications without auto-openingChatActivityopenChatboxFromNotification()method to open the Crisp chatbox from a notification intentsetOnNotificationTappedCallback()method to listen for notification taps while the app is in the backgroundfirebase-messagingas acompileOnlydependency in the SDK'sbuild.gradle
Changed
- Upgraded Crisp iOS SDK from
2.12.0to2.13.0 - Updated
FlutterCrispChatPlugin.javato implementNewIntentListenerfor detecting notification taps - Updated
README.mdwith two notification handling approaches: Option A (auto-open) and Option B (app-first)
Fixed
- #79 — Crisp notification tap directly opens ChatActivity instead of the app's main screen on terminated state
2.4.3
Fixed
- #98 —
getSessionIdentifier()returns null after closing chat, preventing unread message checks
2.4.2
Added
getUnreadMessageCountto get unread message count- Swift Package Manager support for iOS
- Validation for websiteID on iOS & Android SDK level
Changed
- Upgraded Crisp Android SDK from
2.0.13to2.0.16 - Increased
minSdkVersionfrom21to23 - Updated
compileSdkVersionfrom35to36 - Upgraded AGP from
8.6.1to8.9.1 - Upgraded Gradle from
8.7to8.11.1 - Upgraded Crisp iOS SDK from
2.8.2to2.12.0 - Increased minimum iOS deployment target from
9.0to13.0
2.4.1
Added
- Google Play's 16KB page size requirement support
Changed
- Updated Crisp Android SDK
2.0.12to2.0.13 - Updated AGP from
8.6to8.7 - Updated Gradle from
8.4.1to8.6.1 - Updated example project Kotlin from
1.7.10to2.1.0
2.4.0
Added
pushSessionEvent— sends a custom event to the Crisp session withnameandcolor
Changed
- Increased minimum Dart SDK constraint from
>=2.12.0to>=2.15.0
2.3.0
Added
- Comprehensive usage examples in README
{@category}tags for improved documentation- Supported native SDK versions section in README
Changed
- Updated Crisp Android SDK
2.0.11to2.0.12 - Upgraded
compileSdkandtargetSdkto35 - Enhanced error handling for
getSessionIdentifier - Switched from
ExceptiontoArgumentErrorfor input validation
Fixed
- #57 — Android mailto: links fail to launch email app on some devices
2.2.5
- Updated Crisp Android SDK
2.0.10to2.0.11 - Fixed #45: Push view up when keyboard is open
- Added remote notification registration for iOS
2.2.4
- Updated Crisp Android SDK
2.0.9to2.0.10 - Updated Crisp iOS SDK
2.8.1to2.8.2 - Added
enableNotificationsflag inCrispConfig - Added
setSessionSegmentsmethod
2.2.0
- Updated Crisp Android SDK
2.0.5to2.0.8 - Added notification support for missing messages
- Fixed #10, #17, #24
2.0.4
- Added
setSessionStringandsetSessionIntmethods
2.0.0
- Major UI update to match Web & iOS chat boxes
- Take photo support, carousel messages, HelpDesk APIs
- Fixed #4: Build fail due to dependency
1.0.0
- Added Markdown support
- Updated Android Crisp SDK
1.0.16to1.0.18
0.0.1
- Initial release — Crisp Chat for native Android & iOS platforms
Next Steps
- Common Issues — Troubleshooting guide