diff --git a/CHANGELOG.md b/CHANGELOG.md index 33c9eec938..d19a3c3f5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,55 @@ +# 3.13.0 / 2026-08-26 + +* [FEATURE] Add widget support for `timeseries`. See [#3568](https://github.com/DataDog/dd-sdk-android/pull/3568) +* [FEATURE] Support cross-platform embedded content in Session Replay. See [#3690](https://github.com/DataDog/dd-sdk-android/pull/3690) +* [BUGFIX] Fix long task duration computation. See [#3748](https://github.com/DataDog/dd-sdk-android/pull/3748) +* [BUGFIX] Fix `ConcurrentModificationException` races across Session Replay windows. See [#3730](https://github.com/DataDog/dd-sdk-android/pull/3730) +* [BUGFIX] Restore recomposition skipping for Datadog semantics modifier. See [#3662](https://github.com/DataDog/dd-sdk-android/pull/3662) +* [BUGFIX] Guard `featureContext.clear()` call in `DatadogCore`. See [#3669](https://github.com/DataDog/dd-sdk-android/pull/3669) +* [BUGFIX] Fix dialog opening from another dialog in Session Replay. See [#3563](https://github.com/DataDog/dd-sdk-android/pull/3563) +* [BUGFIX] Session Replay: Fix resource hash cache expiration time. See [#3673](https://github.com/DataDog/dd-sdk-android/pull/3673) +* [BUGFIX] Always apply configured app launch sample rate in Profiling feature. See [#3681](https://github.com/DataDog/dd-sdk-android/pull/3681) +* [BUGFIX] Dedupe exposures by latest assignment. See [#3526](https://github.com/DataDog/dd-sdk-android/pull/3526) +* [BUGFIX] Catch `RuntimeException` in `SystemSettingsWrapper`. See [#3700](https://github.com/DataDog/dd-sdk-android/pull/3700) +* [BUGFIX] Fix deadlock/ANR in `DatadogRumMonitor.handleEvent` on JVM crash. See [#3671](https://github.com/DataDog/dd-sdk-android/pull/3671) +* [BUGFIX] Fix gesture target selection for elevated views. See [#3704](https://github.com/DataDog/dd-sdk-android/pull/3704) +* [BUGFIX] Prevent inactive views from overwriting `last_view_event`. See [#3707](https://github.com/DataDog/dd-sdk-android/pull/3707) +* [IMPROVEMENT] Prevent profiling on package versions producing empty profiles. See [#3703](https://github.com/DataDog/dd-sdk-android/pull/3703) +* [IMPROVEMENT] Support `SPLIT` resolution reason. See [#3691](https://github.com/DataDog/dd-sdk-android/pull/3691) +* [IMPROVEMENT] Mix in `DdTags` for the web view event. See [#3648](https://github.com/DataDog/dd-sdk-android/pull/3648) +* [IMPROVEMENT] Update several hardcoded data limits. See [#3616](https://github.com/DataDog/dd-sdk-android/pull/3616) +* [IMPROVEMENT] Send the serial ID on exposure events. See [#3737](https://github.com/DataDog/dd-sdk-android/pull/3737) +* [IMPROVEMENT] Replace fixed pre-launch sleep in `SessionReplayTestRule` with a poll. See [#3746](https://github.com/DataDog/dd-sdk-android/pull/3746) +* [IMPROVEMENT] Remove multi-instance support from Profiling feature. See [#3670](https://github.com/DataDog/dd-sdk-android/pull/3670) +* [IMPROVEMENT] Capture `cf-cache-status` and `x-vercel-cache` response headers by default. See [#3679](https://github.com/DataDog/dd-sdk-android/pull/3679) +* [IMPROVEMENT] Improve reading-errors telemetry for dropped events. See [#3598](https://github.com/DataDog/dd-sdk-android/pull/3598) +* [IMPROVEMENT] Add `UUID` for each Cronet call. See [#3721](https://github.com/DataDog/dd-sdk-android/pull/3721) +* [MAINTENANCE] Add `UK1` site to sample apps. See [#3654](https://github.com/DataDog/dd-sdk-android/pull/3654) +* [MAINTENANCE] Add comments to reduce confusion about double reporting. See [#3762](https://github.com/DataDog/dd-sdk-android/pull/3762) +* [MAINTENANCE] Apply dogfooding fixes. See [#3609](https://github.com/DataDog/dd-sdk-android/pull/3609) +* [MAINTENANCE] Use Gradle plugin to run detekt. See [#3629](https://github.com/DataDog/dd-sdk-android/pull/3629) +* [MAINTENANCE] Explicitly declare generated models directory using AGP API. See [#3759](https://github.com/DataDog/dd-sdk-android/pull/3759) +* [MAINTENANCE] Print AAR metadata. See [#3756](https://github.com/DataDog/dd-sdk-android/pull/3756) +* [MAINTENANCE] Migrate from KotlinX AST to Kotlin PSI model for API surface generation. See [#3764](https://github.com/DataDog/dd-sdk-android/pull/3764) +* [MAINTENANCE] Remove flaky `JointToStringVsStringBuilderPerformanceTest` test. See [#3752](https://github.com/DataDog/dd-sdk-android/pull/3752) +* [MAINTENANCE] Migrate from `buildSrc` to convention plugin. See [#3751](https://github.com/DataDog/dd-sdk-android/pull/3751) +* [MAINTENANCE] Remove unused `com.github.ben-manes.versions` plugin. See [#3755](https://github.com/DataDog/dd-sdk-android/pull/3755) +* [MAINTENANCE] Remove `Kotlin Symbol Processing` dependency from the modules where it is not needed. See [#3754](https://github.com/DataDog/dd-sdk-android/pull/3754) +* [MAINTENANCE] Migrate the test pyramid coverage to Gradle plugins. See [#3643](https://github.com/DataDog/dd-sdk-android/pull/3643) +* [MAINTENANCE] Add `ktlint` plugin to the Gradle build. See [#3649](https://github.com/DataDog/dd-sdk-android/pull/3649) +* [MAINTENANCE] Explicitly enable `Gradle Tooling API` actions parallelism. See [#3664](https://github.com/DataDog/dd-sdk-android/pull/3664) +* [MAINTENANCE] Add missing experimental `Profiling API` annotation in the Sample app. See [#3667](https://github.com/DataDog/dd-sdk-android/pull/3667) +* [MAINTENANCE] Migrate static analysis off shared template into native CI jobs. See [#3659](https://github.com/DataDog/dd-sdk-android/pull/3659) +* [MAINTENANCE] Adapt Cronet integration tests to `cronet-api` 500.0.1. See [#3680](https://github.com/DataDog/dd-sdk-android/pull/3680) +* [MAINTENANCE] Enable Gradle configuration cache (warn mode). See [#3676](https://github.com/DataDog/dd-sdk-android/pull/3676) +* [MAINTENANCE] Fix `datadog-ci` install failing. See [#3689](https://github.com/DataDog/dd-sdk-android/pull/3689) +* [MAINTENANCE] Automate attaching the `verification-metadata.xml` to GitHub release. See [#3692](https://github.com/DataDog/dd-sdk-android/pull/3692) +* [MAINTENANCE] Migrate coverage upload auth to `dd-sts`, drop `codecov`. See [#3705](https://github.com/DataDog/dd-sdk-android/pull/3705) +* [MAINTENANCE] Fix flaky `RumViewScopeTest` test. See [#3723](https://github.com/DataDog/dd-sdk-android/pull/3723) +* [MAINTENANCE] Remove `dd-` prefix from profiling quota thread pool context name. See [#3744](https://github.com/DataDog/dd-sdk-android/pull/3744) +* [MAINTENANCE] Remove ineffective commit-signing policy from `AGENTS.md`. See [#3738](https://github.com/DataDog/dd-sdk-android/pull/3738) +* [MAINTENANCE] Add allowed tools/MCP calls to the Claude config. See [#3745](https://github.com/DataDog/dd-sdk-android/pull/3745) + # 3.12.1 / 2026-07-16 * [BUGFIX] Fix R8 failures due to missing `SourceLines` annotation. See [#3642](https://github.com/DataDog/dd-sdk-android/pull/3642) diff --git a/features/dd-sdk-android-rum/api/apiSurface b/features/dd-sdk-android-rum/api/apiSurface index 18939bd2a3..fba719d7a9 100644 --- a/features/dd-sdk-android-rum/api/apiSurface +++ b/features/dd-sdk-android-rum/api/apiSurface @@ -90,7 +90,6 @@ data class com.datadog.android.rum.RumConfiguration fun setSlowFramesConfiguration(com.datadog.android.rum.configuration.SlowFramesConfiguration?): Builder fun trackAnonymousUser(Boolean): Builder fun setAppStartupActivityPredicate(com.datadog.android.rum.startup.AppStartupActivityPredicate): Builder - fun setTimeseriesConfiguration(com.datadog.android.rum.timeseries.TimeseriesConfiguration): Builder fun build(): RumConfiguration enum com.datadog.android.rum.RumErrorSource - NETWORK diff --git a/features/dd-sdk-android-rum/api/dd-sdk-android-rum.api b/features/dd-sdk-android-rum/api/dd-sdk-android-rum.api index 68d00f2710..87389d5be2 100644 --- a/features/dd-sdk-android-rum/api/dd-sdk-android-rum.api +++ b/features/dd-sdk-android-rum/api/dd-sdk-android-rum.api @@ -118,7 +118,6 @@ public final class com/datadog/android/rum/RumConfiguration$Builder { public final fun setSessionSampleRate (F)Lcom/datadog/android/rum/RumConfiguration$Builder; public final fun setSlowFramesConfiguration (Lcom/datadog/android/rum/configuration/SlowFramesConfiguration;)Lcom/datadog/android/rum/RumConfiguration$Builder; public final fun setTelemetrySampleRate (F)Lcom/datadog/android/rum/RumConfiguration$Builder; - public final fun setTimeseriesConfiguration (Lcom/datadog/android/rum/timeseries/TimeseriesConfiguration;)Lcom/datadog/android/rum/RumConfiguration$Builder; public final fun setViewEventMapper (Lcom/datadog/android/rum/event/ViewEventMapper;)Lcom/datadog/android/rum/RumConfiguration$Builder; public final fun setVitalEventMapper (Lcom/datadog/android/event/EventMapper;)Lcom/datadog/android/rum/RumConfiguration$Builder; public final fun setVitalEventMapper (Lcom/datadog/android/event/EventMapper;Lcom/datadog/android/event/EventMapper;)Lcom/datadog/android/rum/RumConfiguration$Builder; diff --git a/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/RumConfiguration.kt b/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/RumConfiguration.kt index c120f56f77..624daa9e1c 100644 --- a/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/RumConfiguration.kt +++ b/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/RumConfiguration.kt @@ -421,7 +421,7 @@ data class RumConfiguration internal constructor( * @param configuration configuration for timeseries collection. */ @ExperimentalRumApi - fun setTimeseriesConfiguration( + internal fun setTimeseriesConfiguration( configuration: TimeseriesConfiguration ): Builder { rumConfig = rumConfig.copy(timeseriesConfiguration = configuration) diff --git a/instrumented/integration/src/androidTest/kotlin/com/datadog/android/sdk/integration/rum/startup/AppStartupActivityPredicateTest.kt b/instrumented/integration/src/androidTest/kotlin/com/datadog/android/sdk/integration/rum/startup/AppStartupActivityPredicateTest.kt index 58c85a6408..de039f52dd 100644 --- a/instrumented/integration/src/androidTest/kotlin/com/datadog/android/sdk/integration/rum/startup/AppStartupActivityPredicateTest.kt +++ b/instrumented/integration/src/androidTest/kotlin/com/datadog/android/sdk/integration/rum/startup/AppStartupActivityPredicateTest.kt @@ -26,7 +26,6 @@ import com.datadog.android.sdk.integration.rum.ExpectedVitalAppLaunchEvent import com.datadog.android.sdk.integration.rum.RumTest import com.datadog.android.sdk.rules.RumMockServerActivityTestRule import com.datadog.tools.unit.ConditionWatcher -import leakcanary.LeakAssertions import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @@ -110,8 +109,6 @@ internal class AppStartupActivityPredicateTest : ) true }.doWait(timeoutMs = FINAL_WAIT_MS) - - LeakAssertions.assertNoLeaks() } /**