Skip to content

Conversation

@tanderson-ld
Copy link
Contributor

@tanderson-ld tanderson-ld commented Oct 29, 2025

Summary

Adds masking, PrivacyOptions for customizing masking.

How did you test this change?

Bench testing mostly, we have a future story for e2e tests.


Note

Adds configurable session replay masking using PrivacyProfile/MaskMatcher and applies masking during capture; updates sample app to showcase sensitive inputs.

  • SDK / Replay:
    • Privacy & Matchers: Introduce PrivacyProfile (configurable masking for text inputs, text, sensitive views) and MaskMatcher interface; convert profile to matcher list via asMatchersList().
    • Capture Pipeline: CaptureSource now accepts matcher list, syncs with Choreographer, traverses Compose semantics via unmergedRootSemanticsNode, computes sensitive rects, and masks them (Color.GRAY) before encoding; removes enum-based privacy and ad-hoc sensitivity check.
    • Instrumentation: ReplayInstrumentation passes options.privacyProfile.asMatchersList() to CaptureSource.
    • Options: ReplayOptions defaults privacyProfile to PrivacyProfile().
  • E2E App:
    • Configure ReplayInstrumentation with ReplayOptions(privacyProfile = PrivacyProfile(maskText = false)) in BaseApplication.
    • Replace SecondaryActivity UI with a form containing password, address, and credit card fields to exercise masking.

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

@tanderson-ld tanderson-ld requested a review from a team as a code owner October 29, 2025 19:32
@Vadman97 Vadman97 requested a review from agrognetti October 29, 2025 19:32
cursor[bot]

This comment was marked as outdated.

@tanderson-ld tanderson-ld merged commit c34670b into main Oct 31, 2025
22 checks passed
@tanderson-ld tanderson-ld deleted the ta/O11Y-620/android-replay-masking branch October 31, 2025 15:03
tanderson-ld pushed a commit that referenced this pull request Oct 31, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>launchdarkly-observability-android: 0.13.0</summary>

##
[0.13.0](launchdarkly-observability-android-0.12.0...launchdarkly-observability-android-0.13.0)
(2025-10-31)


### Features

* Android observability session replay masking support
([#276](#276))
([c34670b](c34670b))
* O11Y-677 - Add session.id to all metrics
([#279](#279))
([1927107](1927107))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Release Android observability SDK 0.13.0 with session replay masking
and session.id on all metrics, updating manifest and gradle version.
> 
> - **Release: Android observability SDK
`sdk/@launchdarkly/observability-android` v0.13.0**
>   - Adds session replay masking support.
>   - Adds `session.id` to all metrics.
> - **Version updates**:
> - `.release-please-manifest.json` and
`sdk/@launchdarkly/observability-android/gradle.properties` set to
`0.13.0`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
238bdbd. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
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.

4 participants