Skip to content

feat: support for notification inbox#312

Merged
mrehan27 merged 3 commits intomainfrom
feature/message-inbox-mvp
Feb 21, 2026
Merged

feat: support for notification inbox#312
mrehan27 merged 3 commits intomainfrom
feature/message-inbox-mvp

Conversation

@mrehan27
Copy link
Contributor

@mrehan27 mrehan27 commented Feb 20, 2026

Summary

This PR adds support for upcoming feature of notification inbox.

Changes

Includes previously approved/merged PRs:


Note

Medium Risk
Adds new cross-platform method-channel surface area and native listener lifecycle handling; issues could manifest as missed events, duplicate subscriptions, or runtime errors when SDK/inbox isn’t initialized.

Overview
Adds Notification Inbox support to the Flutter in-app messaging plugin, exposing a new CustomerIO.inAppMessaging.inbox API to fetch inbox messages (optionally by topic), stream real-time updates, and perform message actions (mark opened/unopened/deleted, track click).

Implements the inbox bridge on Android and iOS via new method-channel handlers, message serialization helpers, and listener/task lifecycle cleanup to avoid duplicate subscriptions and leaks. Also bumps native SDK versions (android Customer.io SDK 4.15.24.16.0, ios native_sdk_version 4.1.24.2.0) and updates the sample app to include an Inbox Messages screen for testing.

Written by Cursor Bugbot for commit b7d56be. This will update automatically on new commits. Configure here.

@mrehan27 mrehan27 self-assigned this Feb 20, 2026
@mrehan27 mrehan27 requested a review from a team as a code owner February 20, 2026 22:45
@github-actions
Copy link
Contributor

github-actions bot commented Feb 20, 2026

Sample app builds 📱

Below you will find the list of the latest versions of the sample apps. It's recommended to always download the latest builds of the sample apps to accurately test the pull request.


  • amiapp_flutter: ()

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

// Only set up once to avoid duplicate streams
guard messagesStreamTask == nil else {
result(true)
return
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

iOS completed Task prevents inbox stream re-subscription

Medium Severity

The guard messagesStreamTask == nil check cannot distinguish between an active Task and a completed one. If the native inbox.messages(topic:) AsyncSequence terminates naturally (e.g., after SDK reset or user logout), the Task completes but messagesStreamTask remains non-nil. Subsequent calls to subscribeToInboxMessages would return early, silently preventing re-subscription. The Android counterpart avoids this by using a boolean flag (isInboxChangeListenerSetup) that gets explicitly reset in clearInboxChangeListener.

Additional Locations (1)

Fix in Cursor Fix in Web

@mrehan27 mrehan27 merged commit 770c954 into main Feb 21, 2026
15 checks passed
@mrehan27 mrehan27 deleted the feature/message-inbox-mvp branch February 21, 2026 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants