Skip to content

PANA-8614: Integrate host decomposition into native capture - #4109

Draft
jonathanmos wants to merge 1 commit into
feature/sr-new-pipelinefrom
jmoskovich/04-sr-new-pipeline-part4
Draft

jonathanmos wants to merge 1 commit into
feature/sr-new-pipelinefrom
jmoskovich/04-sr-new-pipeline-part4

Conversation

@jonathanmos

Copy link
Copy Markdown
Member

What does this PR do?

Connect the decomposer registered through extensions to the experimental composition-tree capture pipeline.

  • Pass the configured decomposer through pipeline creation and delegate supported host Views to it.
  • Copy embedded native View subtrees on the UI thread and defer their layer and wireframe construction to the processing executor.
  • Preserve host clipping, opacity, hidden-view handling, touch privacy, and drawing-order reliability.
  • Fall back to native capture when decomposition is unavailable, returns no result, or fails. Report unexpected extension failures through SDK telemetry.

Motivation

Allow Compose hosts and embedded native Views to contribute to the same captured tree without making Session Replay depend on the Compose module. Keep native subtree construction off the UI thread.

Additional Notes

Builds on the copied-data snapshot construction introduced in #4092. The Compose decomposer implementation follows in part5.

Splice decomposed host content into captured trees, including native subtree
handoff, identity validation, and host-bound clipping.

Ref: PANA-8614
@datadog-prod-us1-5

datadog-prod-us1-5 Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

Pipelines  Tests

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

🎯 Code Coverage (details)
• Patch Coverage: 97.35%
• Overall Coverage: 72.47% (+0.08%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 516f35e | Docs | View more details | Give us feedback!

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.

1 participant