PANA-5681: Update RUM and Session Replay schemas for heatmaps [2 of 4]#3203
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## feature/heatmaps #3203 +/- ##
====================================================
+ Coverage 72.06% 72.09% +0.04%
====================================================
Files 964 964
Lines 35429 35429
Branches 5880 5880
====================================================
+ Hits 25529 25542 +13
+ Misses 8285 8278 -7
+ Partials 1615 1609 -6 🚀 New features to boost your workflow:
|
77957a4 to
ec32d76
Compare
The base branch was changed.
ec4040e to
81e4f04
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 81e4f0465f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| public static final field Companion Lcom/datadog/android/sessionreplay/model/MobileSegment$Wireframe$ImageWireframe$Companion; | ||
| public fun <init> (JJJJJLcom/datadog/android/sessionreplay/model/MobileSegment$WireframeClip;Lcom/datadog/android/sessionreplay/model/MobileSegment$ShapeStyle;Lcom/datadog/android/sessionreplay/model/MobileSegment$ShapeBorder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V | ||
| public synthetic fun <init> (JJJJJLcom/datadog/android/sessionreplay/model/MobileSegment$WireframeClip;Lcom/datadog/android/sessionreplay/model/MobileSegment$ShapeStyle;Lcom/datadog/android/sessionreplay/model/MobileSegment$ShapeBorder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V | ||
| public fun <init> (JJJJJLcom/datadog/android/sessionreplay/model/MobileSegment$WireframeClip;Lcom/datadog/android/sessionreplay/model/MobileSegment$ShapeStyle;Lcom/datadog/android/sessionreplay/model/MobileSegment$ShapeBorder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;)V |
There was a problem hiding this comment.
Preserve the existing wireframe constructor ABI
When an app has a separately compiled mapper/library (or Java source) that still calls the previous ImageWireframe(..., Boolean) constructor, this change removes that JVM signature and only exposes the new overload with the extra String, so upgrading the SDK can fail with NoSuchMethodError/compile errors even though permanentId is optional. Since these wireframe models are public API and custom mappers instantiate them directly, keep the old constructor overloads (the same issue repeats for the other wireframe classes) while adding the new optional field.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
This will only happen in a very narrow edgecase and can't be handled with the existing generator, so an acceptable issue
What does this PR do?
Adds the
permanent_idfield to RUM action targets andpermanentIdto Session Replay leaf wireframes. These fields enable correlating user interactions with visual wireframes for heatmap support.Schema changes match DataDog/rum-events-format#356, which ensures backwards-compatible field ordering (new fields appended as the last constructor parameter).
Motivation
Support mobile heatmaps. This is PR 2 of 4, schema foundation for the RUM and Session Replay integration PRs that follow.
Additional Notes
HeatmapIdentifierinfrastructure [1 of 4] #3202permanent_idadded as the last property in_dd.action.targetpermanentIdadded as the last property in each leaf wireframe schema (shape, text, image, placeholder, webview)_common-wireframe-schema.jsonis intentionally NOT modifiedReview checklist (to be filled by reviewers)