Skip to content

feat: support for notification inbox#660

Merged
mrehan27 merged 13 commits intomainfrom
feature/message-inbox-mvp
Feb 20, 2026
Merged

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

Conversation

@mrehan27
Copy link
Contributor

@mrehan27 mrehan27 commented Feb 19, 2026

Summary

This PR adds support for upcoming feature of notification inbox.

Changes

Includes previously approved/merged PRs:


Note

Medium Risk
Touches core message fetching/state flow (queue API contract, SSE event handling, caching, and new server mutations), so regressions could affect message delivery and read/unread synchronization.

Overview
Adds first-class Notification Inbox support to the in-app messaging SDK via a new NotificationInbox API (ModuleMessagingInApp.inbox()), including listener-based updates, topic filtering/sorting, and client actions to mark opened/unopened, delete, and track clicks.

Extends the message pipeline to fetch and stream inbox messages alongside in-app messages: queue fetch moves to /api/v4/users with a new QueueMessagesResponse, SSE adds inbox_messages, state gains inboxMessages, and new middleware/reducer logic deduplicates by queueId and syncs opened/deleted updates (plus metrics) back to the server.

Improves caching semantics by converting 304->200 responses, persisting raw responses, and caching per-message opened status in InAppPreferenceStore to preserve local read/unread changes when serving cached data; includes comprehensive unit/integration tests and a sample app inbox UI screen.

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

@mrehan27 mrehan27 self-assigned this Feb 19, 2026
@mrehan27 mrehan27 requested a review from a team as a code owner February 19, 2026 12:07
@github-actions
Copy link

github-actions bot commented Feb 19, 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.


@mahmoud-elmorabea mahmoud-elmorabea requested a review from a team February 19, 2026 12:11
@codecov
Copy link

codecov bot commented Feb 19, 2026

Codecov Report

❌ Patch coverage is 76.45161% with 73 lines in your changes missing coverage. Please review.
✅ Project coverage is 69.07%. Comparing base (f577014) to head (b5cf24d).
⚠️ Report is 65 commits behind head on main.

Files with missing lines Patch % Lines
...stomer/messaginginapp/gist/data/listeners/Queue.kt 14.28% 41 Missing and 1 partial ⚠️
...customer/messaginginapp/inbox/NotificationInbox.kt 86.56% 8 Missing and 1 partial ⚠️
...app/gist/data/model/adapters/Iso8601DateAdapter.kt 85.71% 2 Missing and 3 partials ⚠️
.../gist/data/model/response/QueueMessagesResponse.kt 0.00% 5 Missing ⚠️
...pp/gist/data/model/response/InboxMessageFactory.kt 88.00% 0 Missing and 3 partials ⚠️
.../messaginginapp/state/InAppMessagingMiddlewares.kt 92.30% 1 Missing and 2 partials ⚠️
...mer/messaginginapp/gist/data/sse/InAppSseLogger.kt 0.00% 2 Missing ⚠️
...omer/messaginginapp/gist/data/sse/SseDataParser.kt 71.42% 1 Missing and 1 partial ⚠️
...stomer/messaginginapp/state/InAppMessageReducer.kt 90.90% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main     #660      +/-   ##
============================================
+ Coverage     63.15%   69.07%   +5.91%     
- Complexity      514      838     +324     
============================================
  Files           118      149      +31     
  Lines          3602     4601     +999     
  Branches        445      628     +183     
============================================
+ Hits           2275     3178     +903     
- Misses         1186     1189       +3     
- Partials        141      234      +93     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link

  • kotlin_compose: feature/message-inbox-mvp (1771502928)

@github-actions
Copy link

Build available to test
Version: feature-message-inbox-mvp-SNAPSHOT
Repository: https://central.sonatype.com/repository/maven-snapshots/

@github-actions
Copy link

  • java_layout: feature/message-inbox-mvp (1771502920)

@github-actions
Copy link

github-actions bot commented Feb 19, 2026

📏 SDK Binary Size Comparison Report

Module Last Recorded Size Current Size Change in Size
core 29.88 KB 29.88 KB ✅ No Change
datapipelines 39.12 KB 39.12 KB ✅ No Change
messagingpush 30.25 KB 30.25 KB ✅ No Change
messaginginapp 106.75 KB 122.08 KB ⬆️ +15.33KB
tracking-migration 22.89 KB 22.89 KB ✅ No Change

@github-actions
Copy link

  • java_layout: feature/message-inbox-mvp (1771581076)

@github-actions
Copy link

  • kotlin_compose: feature/message-inbox-mvp (1771581079)

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.

logger.error("Failed to delete inbox message ${message.toLogString()}: ${e.message}")
}
}
}
Copy link

Choose a reason for hiding this comment

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

Delete inbox message calls view-logging endpoint instead

High Severity

The logDeleted method calls gistQueueService.logUserMessageView() which POSTs to /api/v1/logs/queue/{queueId} — the same endpoint used by logView for logging that a user viewed a message. No actual delete endpoint (e.g., @DELETE or a PATCH with a deletion flag) is defined in GistQueueService. By contrast, logOpenedStatus correctly uses a dedicated @PATCH("/api/v1/messages/{queueId}") endpoint. Deleting an inbox message will instead log a "view" event on the server, meaning the message won't actually be deleted and will reappear on the next sync.

Additional Locations (1)

Fix in Cursor Fix in Web

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's intentional. The same API is used for marking an in app message as viewed and for deleting an inbox message. I'll think of more descriptive name and rename the method later to minimize confusion.

@mrehan27 mrehan27 merged commit 7bc46da into main Feb 20, 2026
40 checks passed
@mrehan27 mrehan27 deleted the feature/message-inbox-mvp branch February 20, 2026 17:24
github-actions bot pushed a commit that referenced this pull request Feb 20, 2026
## [4.16.0](4.15.2...4.16.0) (2026-02-20)

### Features

* support for notification inbox ([#660](#660)) ([7bc46da](7bc46da))
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.

3 participants