Skip to content

task: sync react-native ← Android corev8.3.0 + iOS 7.7.1 (rn-complete-1)#5

Closed
clevertap-wrapper-sync[bot] wants to merge 1 commit into
task/setup-sync-automationfrom
task/release_rn-complete-1
Closed

task: sync react-native ← Android corev8.3.0 + iOS 7.7.1 (rn-complete-1)#5
clevertap-wrapper-sync[bot] wants to merge 1 commit into
task/setup-sync-automationfrom
task/release_rn-complete-1

Conversation

@clevertap-wrapper-sync

Copy link
Copy Markdown

⚠️ Post-sync build failed. Claude's edits compile-failed on one or both platforms. The PR is open anyway — pull the branch locally, fix the build, push. Check the workflow logs for the specific error.

Sync react-native ← Android corev8.3.0 + iOS 7.7.1 (rn-complete-1)

🤖 Auto-generated by clevertap-wrapper-sync via clevertap-wrapper-tooling.

⚠️ Flagged for review — NOT auto-applied

  • 🔁 Behavior: getDisplayUnitForID (native v8.3.0) — getAllDisplayUnits() and getDisplayUnitForID() now route through the new DisplayUnitCache; behavior-only change to existing methods, no bridge change applied.
  • 🔧 Signature: getAllDisplayUnits (native v7.7.1) — Return type changed from _Nonnull to nullable NSArray; existing bridge fast-enumeration handles nil safely, but call sites that assumed non-nil should be verified.
  • 🔁 Behavior: wzrk_sif silent-in-foreground push (native v7.7.1) — New push payload key wzrk_sif:true suppresses foreground heads-up; host apps NOT using autoIntegrate must call handleWillPresentNotification: from UNUserNotificationCenterDelegate.willPresent.
  • 🔁 Behavior: Notification Viewed / Notification Clicked deduplication (native v7.7.0) — Rapid duplicate inbox viewed/clicked events now suppressed; for custom inbox UIs the ordering constraint (recordInboxNotificationViewedEvent before markReadInboxMessage) is now load-bearing.

Version pins bumped

  • Androidclevertap-android-sdk 8.1.0 → 8.3.0 (android/build.gradle)
  • iOSCleverTap-iOS-SDK 7.6.0 → 7.7.1 (clevertap-react-native.podspec)

Release prep

  • Wrapper version: 4.1.0 → 4.2.0 (minor — adds two new public APIs fetchInbox and pushDisplayUnitElementClickedEventForID; no breaking changes, no minSdk bump)
  • libVersion: 40100 → 40200
  • Docs updated:
    • docs/usage.md — entries added for: fetchInbox, pushDisplayUnitElementClickedEventForID
    • docs/install.md — Android pin bumped to 8.3.0
  • Example demos added: fetchInbox, pushDisplayUnitElementClickedEventForID

Android sync

Surfaced (2)

  • CleverTap.fetchInbox() — Overload pair (fetchInbox() and fetchInbox(FetchInboxCallback)) surfaced as a single JS method with optional callback; App Inbox Cross-Device Sync on-demand refresh, throttled to once per 5 min.
  • CleverTap.pushDisplayUnitElementClickedEventForID() — New element-level Native Display click analytics API from Android 8.3.0; distinct from pushDisplayUnitClickedEventForID, adds per-element additionalProperties.

Skipped (1)

  • ⏭️ setDisplayUnitCache — SDK-to-SDK API accepting a DisplayUnitCache Java interface; cannot be passed from React Native JS.

Deferred for design review (0)

Build manifest propagated

  • android/build.gradle: clevertap-android-sdk pin 8.1.0 → 8.3.0
  • docs/install.md: sample dependency snippet updated 8.1.0 → 8.3.0

iOS sync

Surfaced (2)

  • CleverTap.fetchInbox() — Overload pair (fetchInbox() and fetchInboxWithCallback:) surfaced as a single JS method with optional callback; added in 7.7.0 as part of App Inbox Cross-Device Sync.
  • CleverTap.pushDisplayUnitElementClickedEventForID() — New recordDisplayUnitElementClickedEventForID:additionalProperties: added in 7.7.1 for element-level click analytics on Display Units; iOS bridge selector uses additionalProperties:.

Skipped (16)

  • ⏭️ addV2MessageIds: — Internal CTInboxController helper; not on the public CleverTap class.
  • ⏭️ buildInboxMessageStateEvent:forMessage:isV2Message:andQueryParameters:completionHandler: — Internal CTEventBuilder static method; not on the public CleverTap class.
  • ⏭️ deleteAbsentPersistentV2MessagesFromResponseIds: — Internal CTInboxController helper; not on the public CleverTap class.
  • ⏭️ handleWillPresentNotification:withDefaultOptions:completionHandler:AppDelegate integration method for UNUserNotificationCenterDelegate.willPresent; not a JS-callable API, autoIntegrate handles this automatically.
  • ⏭️ inboxV2DeleteMessagesRequestWithConfig:params:url: — Internal CTRequestFactory network helper; not on the public CleverTap class.
  • ⏭️ inboxV2FetchRequestWithConfig:params:url: — Internal CTRequestFactory network helper; not on the public CleverTap class.
  • ⏭️ inboxViewControllerDidRequestRefreshWithCallback: — Private CleverTapInboxViewControllerPrivate delegate method; not a public API.
  • ⏭️ inboxViewControllerGetMessages — Private CleverTapInboxViewControllerPrivate accessor; not a public API.
  • ⏭️ inboxViewControllerIsInboxV2Enabled — Private CleverTapInboxViewControllerPrivate accessor; not a public API.
  • ⏭️ isV2MessageId: — Internal CTInboxController helper; not on the public CleverTap class.
  • ⏭️ performExpiryPurge — Internal CTInboxController maintenance method; not on the public CleverTap class.
  • ⏭️ removeV2MessageId: — Internal CTInboxController helper; not on the public CleverTap class.
  • ⏭️ setDisplayUnitCache: — Accepts a native CleverTapDisplayUnitCache protocol instance for SDK-to-SDK injection; a JS caller cannot implement a native protocol.
  • ⏭️ swizzleWillPresentOnClass: — Internal CTSwizzleManager static method for method-swizzling setup; not on the public CleverTap class.
  • ⏭️ buildInboxMessageStateEvent:forMessage:andQueryParameters:completionHandler: (removed) — Internal CTEventBuilder method replaced by the isV2Message: overload; was never surfaced in RN.
  • ⏭️ displayUnitsDidUpdate (removed) — Internal CTDisplayUnitController protocol method; was never surfaced in RN.

Deferred for design review (0)

Build manifest propagated

(none)

CHANGELOG entries added

  • [Android] Bump clevertap-android-sdk to 8.3.0 — adds fetchInbox(callback?) for on-demand App Inbox refresh (App Inbox Cross-Device Sync, throttled to once per 5 min) and pushDisplayUnitElementClickedEventForID(unitID, additionalProperties) for element-level Native Display click analytics.
  • [iOS] Bump CleverTap-iOS-SDK to 7.7.1 — adds fetchInbox(callback?) and pushDisplayUnitElementClickedEventForID; App Inbox Cross-Device Sync; silent-in-foreground push support.

Native CHANGELOG entries (reviewer reference)

Android — corev8.3.0

Version 8.3.0 (June 2026)

New Features

  • Native Display Element Click: New pushDisplayUnitElementClickedEventForID(String unitID, HashMap<String, Object> additionalProperties) on CleverTapAPI records a Notification Clicked event for a specific element within a Display Unit. Caller-supplied additionalProperties (including wzrk_element_id from the action's metadata) are merged first, then enriched with cached wzrk_* attribution fields from the unit — giving finer-grained click analytics for Native Display experiences.
  • Display Unit Cache API: New public interface DisplayUnitCache and setDisplayUnitCache(DisplayUnitCache) on CleverTapAPI let external SDKs (e.g. the Native Display SDK) inject a custom display-unit store. getAllDisplayUnits() and getDisplayUnitForID() now route through this cache. The default implementation (CTDisplayUnitController) remains active when no override is installed.

Android — intermediate corev8.2.0

Version 8.2.0 (May 20, 2026)

New Features

  • App Inbox Cross-Device Sync: App Inbox messages now sync across a user's devices. If a user deletes or reads a message on one device, it is automatically reflected on their other devices.
    • New Inbox Fetch APIs: The SDK already fetches inbox messages automatically on app launch and user login. Two new public methods have been added to CleverTapAPI to complement this with on-demand refresh support:
      • fetchInbox() — triggers an inbox refresh from the server (fire-and-forget).
      • fetchInbox(FetchInboxCallback) — same as above, but invokes the callback with a success/failure result when the fetch completes. The callback fires on the SDK's network thread, not the main thread.
      • Note: Both methods are throttled to once every 5 minutes between consecutive calls. This throttle is shared with the built-in pull-to-refresh gesture.
    • Pull-to-Refresh in Built-in Inbox: The built-in App Inbox (showAppInbox()) now includes a pull-to-refresh gesture. Manual inbox fetches — including those triggered by fetchInbox() — are throttled to once every 5 minutes between consecutive calls.
      • Note: Pull-to-refresh is automatically disabled for accounts that are not enabled for App Inbox Cross-Device Sync. The message list remains fully visible and scrollable; only the swipe gesture is disabled.
    • Inbox Viewed and Clicked Event Deduplication: Rapid duplicate Notification Viewed and Notification Clicked events for the same inbox message are now automatically suppressed to prevent analytics inflation. Additionally, a Notification Viewed event is not raised for messages that have already been read on another device.
      • Note: For custom inbox implementations, ensure pushInboxNotificationViewedEvent(messageId) is called when a message becomes visible to the user, before calling markReadInboxMessage(messageId) — calling them in reverse order will silently drop the Viewed event.
      • Note: The "already read" suppression applies only to accounts enabled for App Inbox Cross-Device Sync. For accounts not using this feature, Notification Viewed continues to be raised regardless of read state, preserving existing behaviour.

iOS — 7.7.1

Version 7.7.1 (June 04, 2026)

Added

  • Silent-in-foreground push notification: Push notifications can now be suppressed when your app is in the foreground via the wzrk_sif:true key-value pair in the push payload.
    • The notification will be delivered silently to the tray instead of appearing as a heads-up notification. This will only work if the method willPresent of UNUserNotificationCenterDelegate is implemented.
    • Adds a new method handleWillPresentNotification: which handles a UNNotification in the foreground to support silent-in-foreground behaviour when using manual SDK integration (i.e. without autoIntegrate). This should be called from your method willPresent of UNUserNotificationCenterDelegate and is not required when using autoIntegrate.
  • Adds a new method recordDisplayUnitElementClickedEventForID: which records a Notification Clicked event for a specific element within a Display Unit.
  • Adds a new public method setDisplayUnitCache: which lets external SDKs (e.g. the CleverTap Native Display SDK) inject a custom Display Unit store.

Fixed

  • Fixes a bug where server-side InApps evaluation IDs were being duplicated in UserDefaults.
  • Fixes a bug where apps were freezing when InApps were being shown in low network conditions.

iOS — intermediate 7.7.0

Version 7.7.0 (May 19, 2026)

New Features

  • App Inbox Cross-Device Sync: App Inbox messages now sync across a user's devices. If a user deletes or reads a message on one device, it is automatically reflected on their other devices.
    • New Inbox Fetch API: The SDK already fetches inbox messages automatically on app launch and user login. Two new public methods have been added to this with on-demand refresh support:
      • fetchInbox() — triggers an inbox refresh from the server (fire-and-forget).
      • fetchInbox(callback:) — same as above, but invokes the callback with a success/failure result when the fetch completes.
      • Note: Both methods are throttled to once every 5 minutes between consecutive calls. This throttle is shared with the built-in pull-to-refresh gesture.
    • Pull-to-Refresh in Built-in Inbox: The built-in App Inbox now includes a pull-to-refresh gesture. Manual inbox fetches — including those triggered by fetchInbox() — are throttled to once every 5 minutes between consecutive calls.
    • Inbox Viewed and Clicked Event Deduplication: Rapid duplicate Notification Viewed and Notification Clicked events for the same inbox message are now automatically suppressed to prevent analytics inflation. Additionally, a Notification Viewed event is not raised for messages that have already been read on another device.
      • Note: For custom inbox implementations, ensure recordInboxNotificationViewedEvent(messageId) is called when a message becomes visible to the user, before calling markReadInboxMessage(messageId) — calling them in reverse order will silently drop the Viewed event.
      • Note: The already read suppression applies only to accounts enabled for App Inbox Cross-Device Sync. For accounts not using this feature, Notification Viewed continues to be raised regardless of read state, preserving existing behaviour.

Fixed

  • Fixes a crash in CTInAppEvaluationManager corrupting NSUserDefaults.

Run metadata

  • Model: claude-sonnet-4-6
  • Tokens used: 203,500
  • Approx cost: $3.09
  • Self-heal attempts: unknown
  • Soft cap ($3) exceeded: yes

For the reviewer

This PR is auto-generated. Please:

  1. Read the Surfaced sections — confirm each surfaced API is genuinely host-facing and the wrapper API shape looks idiomatic.
  2. Read Skipped — confirm we didn't miss anything obvious.
  3. Read Deferred — these need follow-up tickets to be opened or addressed locally.
  4. Check Build manifest propagated — any minSdk / deployment-target bumps are visible to host apps. Make sure CHANGELOG calls them out as breaking if applicable.
  5. CI must be green before merge: lint + Android build + iOS Example app build.

Android: core 8.3.0
iOS: core 7.7.1

Auto-generated by clevertap-wrapper-sync via clevertap-wrapper-tooling.

Co-Authored-By: Claude <noreply@anthropic.com>
@clevertap-wrapper-sync

Copy link
Copy Markdown
Author

⚠️ Run cost: $3.09 — exceeded soft cap of $3

Total tokens: 58027.
No action required — soft cap is informational. Review this run if costs are consistently high.

@piyush-kukadiya

Copy link
Copy Markdown
Owner

Superseded by #6 — root cause was the orchestrator prompt's own iOS reference code containing a non-existent selector (fetchInbox); fixed in clevertap-wrapper-tooling@81125f9 with mandatory native-source verification. #6 is the green re-run.

@piyush-kukadiya
piyush-kukadiya deleted the task/release_rn-complete-1 branch June 12, 2026 11:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant