2.17.2 (2026-07-09)
🐛 Bug Fixes
- Raised the network timeout for RUM data and Session Replay frames from 10s to 45s, so sends on slow connections no longer time out and drop telemetry.
2.17.1 (2026-07-05)
🐛 Bug Fixes
- Fixed
view_number being dropped for the rest of a session after a session rotation while staying on the same screen. The current view is now re-stamped as view 0 on rotation, matching iOS.
2.17.0 (2026-07-05)
🚀 Features
- Added
createNewSession() to start a fresh session on demand (e.g. on logout) without re-initializing the SDK.
2.16.3 (2026-06-29)
🐛 Bug Fixes
- Fixed Flutter Session Replay tap frames rendering as a black screen on slower devices. Native now waits for the masked bitmap instead of discarding it after one vsync.
2.16.2 (2026-06-24)
🐛 Bug Fixes
- Fixed
beforeSend edits (e.g. redacting a URL) on React Native applying to the RUM event but not the matching OpenTelemetry span attributes; both now reflect the edit.
2.16.1 (2026-06-15)
🐛 Bug Fixes
- Fixed crashes caused by reading the view hierarchy off the main thread.
Display.getViewHierarchy() is now marshalled onto the main thread and returns null on failure/timeout instead of emitting an empty hierarchy.
2.16.0 (2026-06-09)
🚀 Features
- Added
view_number and isNavigationEvent to every RUM event under cx_rum for product analytics. Mirrors iOS/Browser.
2.15.1
📦 Version alignment
- The SDK, Compose module, and Gradle Plugin now all ship under the same version number.
2.15.0 (2026-06-08)
🚀 Features
- The SDK now emits a
session_replay_init internal event with the resolved session-replay configuration when SessionReplay.initialize() succeeds.
2.14.1 (2026-06-07)
🐛 Bug Fixes
beforeSend edits now apply to both the RUM payload (text.cx_rum.*) and the OTLP attribute mirror; previously redactions landed on the RUM payload only.
beforeSend can no longer forge spanId, traceId, parentSpanId, or isSnapshotEvent — these are restored from the original. Mirrors iOS.
- Parity fixes between the init-time and
beforeSend attribute paths for labels and session_creation_date.
2.14.0 (2026-06-07)
🐛 Bug Fixes
- Fixed session-replay mask skew (masks drifting behind text during scroll) for classic Views.
- Fixed misaligned Flutter session-replay masks via the new
flutterViewBitmapProvider path.
containsCompose() view-hierarchy walk now runs on the main thread.
frameCapturer.cleanup() is now called from SessionReplayInternal.shutdown(), so draw listeners stop firing after shutdown.
- Bitmap is now recycled if
copyPixelsFromBuffer throws.
NetworkConnectivityMonitor no longer crashes with ConcurrentModificationException when listeners change during a callback.
🚀 Features
SessionReplayOptions.flutterViewBitmapProvider: optional suspend callback for Flutter hosts to composite a pre-masked bitmap into each frame.
2.13.0 (2026-06-03)
🚀 Features
- Added optional
customAttributes parameter to CoralogixErrorDecorator, emitted under errorContext.data. Defaults to null, so existing calls are unaffected. Matches iOS.
2.12.2 (2026-06-02)
🐛 Bug Fixes
- Fixed RUM sessions appearing as 20–24h long.
SessionManager.getSessionId() now refreshes an expired session before returning, so spans can't be stamped with a stale session ID.
2.12.1 (2026-05-24)
🐛 Bug Fixes
- Fixed
IllegalArgumentException: invalid pointerIndex -1 crash in TouchEventDispatcher by filtering multi-touch actions before forwarding to GestureDetector.
- Added
cx_rum.session_context.session_creation_date and hasRecording to instrumentation_data.otelSpan.attributes, matching iOS.
2.12.0 (2026-05-07)
🚀 Features
- Added Custom Time Measurement API:
CoralogixRum.startTimeMeasure(name, labels) / endTimeMeasure(name) emit a Measurement event with the elapsed duration.
- Added
excludeFromSampling to CoralogixOptions to export selected instrumentation categories at 100% even when the session is sampled out.
- Session-sampling decision moved into
SessionManager, re-rolled on every session rotation (matches web).
- Added public enum
ExcludableInstrumentation.
2.11.2 (2026-05-05)
🐛 Bug Fixes
- Fixed Flutter session replay capturing black frames. A new
FlutterSurfaceViewPatchingStrategy patches FlutterSurfaceView content into the frame via per-surface PixelCopy.
2.11.1 (2026-04-26)
🐛 Bug Fixes
getCustomTracer(ignoredInstruments) now takes a Set instead of List.
CoralogixGlobalSpan.runInSpanContext renamed to withContext.
CoralogixCustomSpan.addEvent now accepts an optional timestamp and TimeUnit.
startGlobalSpan returns null when a global span is already active, preventing orphaned spans.
- Custom spans are now exported through the RUM log pipeline with correct
parentSpanId linking.
🚀 Features
- Added a
toJson() convenience method to CoralogixTraceExporterData.
2.11.0 (2026-04-16)
🚀 Features
- Added Custom Spans API:
getCustomTracer(), startGlobalSpan(name), and CoralogixGlobalSpan.startCustomSpan(name). Spans appear in the RUM trace view, correlate with the session, and propagate traceparent to outgoing requests.
- Added
tracesExporter option in CoralogixOptions to receive the raw OTLP span payload alongside the RUM export.
2.10.2 (2026-04-15)
🐛 Bug Fixes
- Fixed
ConcurrentModificationException crash in ActivityLifecycleMonitor.reportLifecycleEvent; monitorListeners is now a CopyOnWriteArrayList.
2.10.1 (2026-04-15)
🐛 Bug Fixes
- Fixed
android-sdk-compose failing to publish to Maven Central — the generated POM was missing the <version> for the com.coralogix:android-sdk dependency.
2.10.0 (2026-04-14)
🚀 Features
- Added Jetpack Compose support via the new
android-sdk-compose artifact.
- Session replay now works for Compose apps on API 26+, fixing previously blank frames.
- Added
CoralogixDomain.US3 for the US3 region.
🐛 Bug Fixes
maskAllTexts, textsToMask, and Modifier.coralogixMasked() now mask Compose text elements.
maskAllImages now masks Compose image composables.
maskInputFieldsOfTypes[PASSWORD] now masks Compose password fields.
2.9.5 (2026-04-05)
🐛 Bug Fixes
- Fixed
ClassCastException crash when using @shopify/react-native-skia. Generated view IDs are now stored in a view tag instead of overwriting View.NO_ID.
2.9.4 (2026-03-23)
🚀 Features
- Added
CoralogixDartObfuscatedStackFrame for obfuscated Dart stack traces from Flutter apps built with --obfuscate.
- Added optional
arch, build_id, and stack_trace_type fields to ErrorContext for Flutter symbolication metadata.
- Added span attribute constants so the new fields survive the OpenTelemetry pipeline and
beforeSend.
2.9.3 (2026-03-17)
🐛 Bug Fixes
- Fixed error count discrepancy between the RUM grid and session drilldown when
beforeSend changes severity from Error or drops the event.
- Fixed hybrid platforms (Flutter/React Native) without a
beforeSendCallback dropping all spans; events are now exported when no callback is set.
- Removed
snapshotContext from EditableCxRum — it is SDK-internal and not user-editable.
2.9.2 (2026-03-15)
🐛 Bug Fixes
- Fixed
request_payload and response_payload schema — both are now serialized as plain strings for cross-platform compatibility.
2.9.1 (2026-03-11)
🐛 Bug Fixes
- Fixed
resolveNetworkCaptureRule using Regex.matches() instead of containsMatchIn(), so patterns like example\.com now match full URLs.
2.9.0 (2026-03-09)
🚀 Features
- Added
networkCaptureConfig option to CoralogixOptions for capturing request/response headers and payloads on matching requests.
- Introduced
NetworkCaptureRule supporting exact URL or regex matching, with per-rule header/payload control.
- Network spans now include
request_headers, response_headers, request_payload, and response_payload when capture rules are configured.
🛠️ Improvements
- Fixed URL path encoding in network requests (
@Path with encoded = true).
- Fixed payload serialization: payloads are surfaced as JSON elements; non-JSON text payloads are preserved as primitives.
2.8.1 (2026-03-08)
🛠️ Improvements
- Native user interaction monitoring is now automatically disabled on hybrid platforms (React Native, Flutter), which should use
reportUserInteraction instead.
2.8.0 (2026-03-02)
🚀 Features
- Added scroll gesture detection (up, down, left, right) on scrollable views.
- Added swipe/fling gesture detection (up, down, left, right) on any view.
- Added
reportUserInteraction public API for hybrid platforms to manually report interactions.
🛠️ Improvements
- Fixed
inner_text not being collected for Button views.
- Network span attributes now conform to the cross-platform
cx_rum.* schema.
2.7.2 (2026-02-10)
🛠️ Improvements
- Fixed severity synchronizing for non native frameworks
- Fixed serialization issues
2.7.0 (2026-02-08)
🛠️ Improvements
- Added support for flutter SessionReplay
- Added configurable Trace-Parent header injection for distributed tracing
2.6.4 (2026-01-29)
🛠️ Improvements
- Fixed some issues reported by Android's
StrictMode API
- Fixed events sent with wrong session details (session refreshed before the event was sent)
- Fixed cold and warm start time calculations
severity changes in beforeSend are now reflected on the resulting log
2.6.3 (2025-12-09)
🛠️ Improvements
- Log Context converts the data into a string and not as json object
2.6.2 (2025-12-07)
🛠️ Improvements
- Network Context duration in millisecond
2.6.1 (2025-11-20)
🛠️ Improvements
- Clear
MobileVitalsInstrumentation measurement windows on navigation events
- Improved threading support in the detector implementations
- Idle mobile vitals event now triggers every 15 seconds per business rules
- Fixed incorrect enabled/disabled detector validation when starting
MobileVitalsInstrumentation
2.6.0 (2025-11-18)
🛠️ Improvements
labels map now supports any value type (Map<String, Any?>)
log data and labels are now Map<String, Any?> and sent as JSON objects instead of escaped strings
📚 Documentation
- Reflected these changes and the latest SDK version in the README
2.5.7 (2025-11-03)
🚀 Features
- Session Replay masking now supports custom text patterns and regex via
textsToMask
- Session Replay adds a
maskAllImages option to mask all image views
🛠️ Improvements
- Enhanced precision in mobile vitals metrics with rounded measurements
📚 Documentation
- Updated the
SessionReplay section and code examples with the new masking options
- Updated the current SDK patch version in
Installation to 2.5.7