Skip to content

Changelog


ft-sdk

1.7.2 (2026/05/20)

  1. Added DataKit-compatible data filtering capability, supporting local and remote rule filtering for Logging and RUM data. Enabled by default, can be disabled via FTSDKConfig.setEnableDataFilter(false).
  2. Added FTSDKConfig.setDataFilters, supporting configuration of local filtering rules and remote filtering rule fetch intervals. Filtering rules are executed after LineDataModifier and before local cache write.
  3. Added general cache size limit configuration FTSDKConfig.enableLimitWithCacheSize, FTSDKConfig.setCacheDiscard, and CacheDiscard. Original enableLimitWithDbSize and setDbCacheDiscard remain compatible but migration to the new interfaces is recommended.
  4. Added file cache capability for synchronous cache and RUM aggregated data, providing a migration path compatible with old caches.
  5. ft-sdk no longer strongly depends on ft-session-replay. Applications not enabling Session Replay do not need to include the ft-session-replay dependency.
  6. Added app_launch_type field to cold-start Action to distinguish between foreground launch and background launch.
  7. Added RUM fallback View data, generating real View summary records in ApplicationLaunch, BackgroundView, and RootView scenarios, enabling RUM events like startup, background, and those lacking a foreground View to be associated with a random view_id.
  8. Optimized data synchronization strategy, prioritizing RUM data synchronization and isolating retry and backoff states by data type to reduce the impact of log synchronization on RUM data reporting.
  9. Fixed an issue where custom Resource attributes could overwrite the SDK-calculated duration, and added non-negative value protection for fallback durations in exceptions.
  10. Fixed Session Replay upload retry and upload address validation logic to avoid repeated triggering of uploads for invalid addresses and to ensure retryable failures are handled according to the backoff strategy.

1.7.1 (2026/04/30)

  1. Added View RUM metric view_long_task_rate to calculate the proportion of total Long Task duration within the View lifecycle, with a maximum value of 1.
  2. Added crash RUM Error metrics foreground_crash_free_duration and background_crash_free_duration to distinguish crash-free run durations in foreground and background.
  3. Added Resource network snapshot fields, including network_available, network_validated, network_downlink_kbps, network_uplink_kbps, and network_signal_strength.
  4. SDK data synchronization now enables deflate compression by default, can be disabled via FTSDKConfig.setCompressIntakeRequests(false).
  5. Corrected version dependency constraints between ft-sdk and the Session Replay module, improving integration compatibility check accuracy.

1.7.0 (2026/04/17)

  1. Added Session Replay capability, supporting WebView Session Replay, DCloud WebView, and full snapshot keyframe collection for WebView containers.
  2. Added Session Replay and RUM context association capability, allowing association between WebView containers and the context of loaded HTML content.
  3. Added Session Replay error sampling capability, supporting dynamic control of Session Replay via remote configuration.
  4. Added Session Replay image resource upload capability, supplementing parameter passthrough like userAgent, appVersion, and synchronization link adaptation.
  5. Optimized Session Replay initialization, fragment frame complementation, frame generation and consumption, delayed writing, disk write limits, etc., improving recording and synchronization stability.
  6. Fixed issues including WebView data loss, abnormal handling in invisible scenarios, premature writing causing white screens, inability to synchronize with low-version OkHttp, Bitmap recycling causing recording failures, etc.
  7. Fixed crash issues caused by calling related methods on some controls before layout completion, improving overall stability and compatibility.

1.6.17 (2026/3/25)

  1. Fixed an issue introduced in version 1.6.16: remote dynamic configuration not taking effect on first load.
  2. Added TraceContext and TraceContext.Simple for custom Trace Header handling. Can override HeaderHandler.getTraceContext(Request) to provide headers, traceId, and spanId at once, fully compatible with existing getTraceHeader, getTraceID / getSpanID implementations.
  3. Support dynamically changing transmission addresses via FTSdk.setDatakitUrl(url), FTSdk.setDatawayUrl(datawayUrl, clientToken).

1.6.16 (2026/1/08)

  1. Added illegal character filtering for globalContext and attribute keys.
  2. Expanded resource_type support range, adding image, media, font, CSS, JS, native types.
  3. Support custom parsing and configuration of remote variables via FTSDKConfig.setRemoteConfigurationCallBack(FTRemoteConfigManager.FetchResult), FTSdk.updateRemoteConfig(int remoteConfigMiniUpdateInterval, FTRemoteConfigManager.FetchResult result). Custom parsing and configuration example.
  4. Added resource_http_protocol, resource_request_size, resource_connection_reuse fields to Resource.
  5. Refined cold-start time metrics, added app_pre_application_init_time, app_application_init_time, and app_first_frame_init_time.
  6. Added compatibility support for OkHttp 3.12 and above.
  7. Fixed inaccurate Resource request start time.
  8. Fixed occasional null pointer exceptions when obtaining Action and View during SDK shutdown.
  9. Optimized error stack format, fixing line break errors in specific scenarios.
  10. Added limited Long Task monitoring capability when the application is in the background.
  11. Optimized Session refresh mechanism when the application is in the background.
  12. Optimized nanosecond-level duration calculation logic in Action, View, and Resource.

1.6.15 (2025/12/03)

  1. Optimized FPS monitoring mechanism: starts on the main thread, automatically stops monitoring when the app goes to the background.
  2. Optimized long log output mechanism exceeding 4K, improving log readability and completeness.
  3. Optimized generation logic for resource, long task, and error within View context.
  4. Increased View generation rate and reduced traffic data generated with the same view_id.
  5. Removed restrictions on ActivityLifecycleCallbacks in child processes, making lifecycle monitoring more complete.
  6. Fixed occasional View data update loss.
  7. Fixed session refresh anomalies caused by asynchronous network requests.
  8. Fixed issue where idle DB release could not be triggered after SDK shutdown and re-initialization.

1.6.14 (2025/08/20)

  1. Used ContentProvider to optimize compatibility issues in high-load multi-process data collection scenarios.
  2. Removed SDK AndroidManifest declaration for android.permission.READ_PHONE_STATE. Integrators need to add it based on actual requirements. Permission usage instructions can be found in the integration documentation.
  3. Restricted data synchronization in child processes. Data collected by child processes will be reported by the main process.

1.6.13 (2025/08/10)

  1. Added FTRUMConfig.setActionTrackingHandler to support custom user action tracking. This handler allows developers to customize how user actions (app launch, clicks) are tracked in RUM data. Developers can modify action names, add custom attributes, or skip tracking for specific actions.
  2. Added FTRUMConfig.setViewActivityTrackingHandler to support custom Activity page tracking. This handler allows developers to customize how Activity pages are tracked in RUM data. Developers can modify page names, add custom attributes, or skip tracking for specific Activities.
  3. Added FTRUMConfig.setViewFragmentTrackingHandler to support custom Fragment page tracking. This handler allows developers to customize how Fragment pages are tracked in RUM data. Developers can modify page names, add custom attributes, or skip tracking for specific Fragments.
  4. Fixed issue where FTRUMGlobalManager.addAction lacked binding information for bindUserData, e.g., userid.
  5. Added load_time data metric for Fragment in View.
  6. Added FTRUMGlobalManager.updateTime for customizing the current view's loading time.
  7. Improved compatibility with OkHttp 3.12.x versions.
  8. Tags added via FTRUMConfig.appendRUMGlobalContext can now be updated during a session.

1.6.12 (2025/06/11)

  1. Added FTRUMConfig.setEnableTraceWebView to configure whether to enable WebView data collection via Android SDK. Use FTRUMConfig.setAllowWebViewHost to control which host addresses to filter.
  2. Added ContentHandlerHelperEx.onExceptionWithFilter to filter local network errors.
  3. Added FTSDKConfig.setRemoteConfiguration to support enabling remote conditional configuration. Added FTSDKConfig.setRemoteConfigMiniUpdateInterval to set the minimum update interval after enabling remote control.

1.6.11 (2025/05/15)

  1. Added FTRUMConfig.setEnableTraceUserViewInFragment to support fragment view data collection, default is false.
  2. Added FTSDKConfig.setLineDataModifier, FTSDKConfig.setDataModifier to support data write replacement and data desensitization.
  3. Added FTRUMConfig.setSessionErrorSampleRate to support error sampling. When not sampled by setSamplingRate, errors can trigger sampling collection for RUM data from up to 1 minute ago.
  4. When FTSDKConfig.setEnableAccessAndroidID(false), use a local random uuid as the device_uuid.
  5. Optimized high-frequency log writing, data synchronization, and data idle shutdown logic.

1.6.10 (2025/04/18)

  1. Added FTSDKConfig.setEnableOkhttpRequestTag to support adding unique ResourceID to OkHttp requests, solving the issue of trace_id and span_id misalignment in high-concurrency scenarios for identical requests. ft-plugin version 1.3.5+ supports automatic ResourceID addition.
  2. Fixed an issue where repeated RUM configuration initialization could cause circular calls with other crash collection SDKs.
  3. When navigating from a native page to a WebView page, use the native page name to populate view_referrer.
  4. Fixed an issue where re-throwing IOException from network requests could alter the original exception type.
  5. Added setProxy, setProxyAuthenticator, setDns to FTSDKConfig for configuring Proxy, ProxyAuthenticator, and Dns for OkHttp data synchronization network requests.
  6. OkHttp data synchronization network requests now support DNS IP round-robin connection for known hostNames.

1.6.9 (2025/03/07)

  1. Modified isAppForeground judgment mechanism to adapt to privacy-sensitive information detection.
  2. Added resource data fields: resource_first_byte_time, resource_dns_time, resource_download_time, resource_connect_time, resource_ssl_time. Supports enhanced Resource duration display on TrueWatch and aligns with APM flame graph timelines.
  3. Optimized synchronization retry mechanism, removed the configuration option FTSDKConfig.setDataSyncRetryCount(0) which directly discarded data.
  4. FTSDKConfig.enableDataIntegerCompatible is enabled by default for compatibility with web numeric floating-point type data.
  5. Fixed an issue where repeated RUM configuration initialization could cause duplicate crash data generation.

1.6.8 (2025/01/21)

  1. Fixed inaccurate fps collection when RUM configuration was initialized multiple times.
  2. Added fault tolerance for cache data upgrade from older versions.
  3. Migrated FTRUMConfig.setOkHttpTraceHeaderHandler to FTTraceConfig.setOkHttpTraceHeaderHandler.
  4. Enhanced WebView SDK internal information and optimized performance.

1.6.7 (2025/01/10)

  1. Support custom FTTraceInterceptor.HeaderHandler for association with RUM data.
  2. Support modifying ASM-written FTTraceInterceptor.HeaderHandler content via FTRUMConfig.setOkHttpTraceHeaderHandler, and modifying ASM-written FTResourceInterceptor.ContentHandlerHelper content via FTRUMConfig.setOkHttpResourceContentHandler.
  3. Optimized crash collection capability, adapting to scenarios where system.exit triggered by certain OS prevents crash data collection.
  4. Fixed occasional empty string tags causing data reporting failure.
  5. Optimized ASM OkHttpListener EventListener override logic, supporting preservation of original project EventListener event parameter passing.

1.6.6 (2024/12/27)

  1. Optimized network status and type acquisition, supporting display of ethernet network type.
  2. Optimized frequent database closure during data writing when network is unavailable.
  3. Fixed discrepancy between the number of discarded log/RUM entries and the configured limit when discarding old data.
  4. Adapted TV device key events, filtering out non-TV device tags.
  5. Support limiting RUM data cache entry count via FTRUMConfig.setRumCacheLimitCount(int), default is 100,000.
  6. Support limiting total cache size via FTSDKConfig enableLimitWithDbSize(long dbSize). When enabled, FTLoggerConfig.setLogCacheLimitCount(int) and FTRUMConfig.setRumCacheLimitCount(int) become ineffective.
  7. Optimized Session refresh rules when the device is idle.

1.6.5 (2024/12/24)

  1. Weakened warnings for null parameters during WebView AOP processing.
  2. Optimized long Session update mechanism when the application is in the background.

1.6.4 (2024/12/03)

  1. Optimized App startup time statistics for API 24 and above.
  2. Support setting detection time range via FTRUMConfig.setEnableTrackAppUIBlock(true, blockDurationMs).

1.6.3 (2024/11/18)

  1. Optimized performance of custom addAction during high-frequency calls.
  2. Support using FTSDKConfig.setCompressIntakeRequests to configure deflate compression for synchronized data.

1.6.2 (2024/10/24)

  1. RUM added addAction method, supporting property extension attributes and frequent continuous data reporting.

1.6.1 (2024/10/18)

  1. Fixed an issue where custom startView calls in RUM alone caused the monitoring metric FTMetricsMTR thread not being recycled.
  2. Support adding dynamic attributes via FTSdk.appendGlobalContext(globalContext), FTSdk.appendRUMGlobalContext(globalContext), FTSdk.appendLogGlobalContext(globalContext).
  3. Support clearing unreported cached data via FTSdk.clearAllData().
  4. Extended maximum limit for SDK setSyncSleepTime to 5000 ms.

1.6.0 (2024/08/18)

  1. Optimized data storage and synchronization performance. (Upgrading from older versions to 1.6.0 requires configuring FTSDKConfig.setNeedTransformOldCache for old data compatibility synchronization.)
  2. Fixed an issue where calling Log.w(String,Throwable) with ft-plugin could cause an exception.

1.5.2 (2024/07/10)

  1. Added local network error type hints to Error network_error, supplementing scenarios where resource_status=0 in Resource data.
  2. Fixed uncaughtException rethrow propagation issue when setEnableTrackAppCrash(false).

1.5.1 (2024/06/19)

  1. Added other thread code stacks to Java Crash and ANR.
  2. Added additional logcat configuration capability for Java Crash, Native Crash, and ANR.
  3. Fixed frequent session_id updates in scenarios with long sessions and no action updates.

1.5.0 (2024/06/03)

  1. Added remote IP address resolution capability for RUM resource network requests.
  2. Fixed array thread safety issues caused by high-concurrency network requests when RUM SampleRate is enabled.
  3. Fault tolerance optimization for the ConnectivityManager.registerDefaultNetworkCallback method.
  4. Added line protocol Integer data compatibility mode to handle web data type conflicts.
  5. Optimized automatic collection of control resource name IDs in Action clicks.
  6. Fault tolerance optimization for SDK config configuration reading exceptions.

1.4.6 (2024/05/15)

  1. SDK initialization fault tolerance optimization.
  2. Added new log type Status.Debug.
  3. Adjusted console log capture level mapping: Log.i -> info, Log.d -> debug.
  4. FTLogger custom logs support custom status field.

1.4.5 (2024/04/26)

  1. Optimized handling for repeated initialization compatibility.
  2. Optimized C/C++ crash collection data synchronization logic to avoid deadlocks caused by unexpected exits in certain scenarios.
  3. Optimized startAction Property attribute writing logic to avoid thread-safe access issues.

1.4.4 (2024/04/01)

  1. Database connection fault tolerance protection.
  2. Fixed issue where child process configuration partially ineffective when setOnlySupportMainProcess is true.
  3. Fixed issue where Crash would not rethrow when RUM View collection is not enabled.

1.4.3 (2024/03/22)

  1. Support uploading to Dataway and Datakit addresses.
  2. Support sending RUM data types: Action, View, Resource, LongTask, Error.
  3. Automatic collection of View, Action page navigation, control clicks requires ft-plugin.
  4. Automatic collection of Resource, only supports OkHttp, requires ft-plugin.
  5. Native Crash and ANR in Error require ft-native.
  6. Support sending Log data, automatic console writing requires ft-plugin.
  7. Trace http header propagation, only supports OkHttp, requires ft-plugin.
  8. Support data synchronization parameter configuration: request entry count, sync interval time, and log cache entry count.
  9. Support converting SDK internal logs to files.

More logs

ft-session-replay

0.1.5 (2026/05/19)

ft-session-replay

  1. Added Flutter Session Replay upload compatibility, supporting mapping Replay batches to corresponding Segments via Flutter RUM context Key.
  2. Fixed compatibility issues with Session Replay file read/write factories between regular storage and encrypted storage implementations.
  3. Fixed retry state handling for Session Replay data and resource uploads. Upload failures are retried according to backoff strategy; invalid upload addresses are skipped until a valid address configuration is available.
  4. Replaced remaining JetBrains nullability annotations in Session Replay with AndroidX annotations, reducing redundant annotation dependencies.

ft-session-replay-material

  1. No changes.

ft-session-replay-compose

  1. No changes.

0.1.4 (2026/04/30)

ft-session-replay

  1. Removed redundant Kotlin dependencies, simplifying Session Replay dependency relationships.
  2. Enhanced public API documentation for Session Replay configuration, privacy control, custom Mapper extensions, resource upload callbacks, etc., improving IDE hints and custom extension development experience for Java/Kotlin integration.

ft-session-replay-material

  1. Version aligned with ft-session-replay 0.1.4, no API or behavioral changes.

ft-session-replay-compose

  1. Fixed crash when recording AndroidView interop nodes caused by missing MappingContext.getInteropViewCallback() in lower versions of Session Replay Core.
  2. Added consumer ProGuard rules to preserve MappingContext AndroidView interop callback access methods required by Compose Replay.
  3. Enhanced documentation for Compose Replay's Modifier privacy masking, extension support, text truncation modes, and image Wireframe helper methods, improving IDE hints for Kotlin/Compose integration.

0.1.3 (2026/04/17)

ft-session-replay

  1. Added WebView Session Replay capability, supporting DCloud WebView and full snapshot keyframe collection for WebView containers.
  2. Added Session Replay and RUM context association capability, allowing association between WebView containers and the context of loaded HTML content.
  3. Added error sampling capability, supporting dynamic control of Session Replay via remote configuration.
  4. Added image resource upload capability, improved metadata handling for userAgent, appVersion, forceFullSnapshot, etc.
  5. Optimized frame generation and consumption, fragment complementation, WebView Replay data delayed writing, invisible WebView handling, and disk write limits, improving stability and performance.
  6. Fixed issues including WebView Replay data loss, premature writing causing white screens, synchronization failure with low-version OkHttp, Bitmap recycling causing recording failure, rumLinkKey null handling, and recording timeout in multi-image scenarios.

ft-session-replay-material

  1. Added Session Replay support for Material components, including CardView and Chip.
  2. Optimized compatibility and debugging support for lower Android versions.
  3. Optimized rendering performance of Material components in Replay data, updated MaterialDrawableToColorMapper rules.
  4. Aligned version strategy with ft-session-replay, improving release management and integration consistency.

ft-session-replay-compose

  1. Added Jetpack Compose Session Replay support, enabling recording and playback for ComposeView and AndroidComposeView scenarios.
  2. Supports semantic mapping and playback for common Compose components, including Text, TextField, Button, Image, Slider, Switch, Checkbox, RadioButton, Tab, and container nodes.
  3. Supports Session Replay privacy masking via Modifier in Compose, including node hiding, image privacy, text and input privacy, touch privacy.
  4. Current Compose playback is based on semantic node mapping and does not guarantee pixel-perfect reproduction; Brush backgrounds (e.g., linear gradients, radial gradients) are not supported and will not be played back with original effects.

More logs for ft-session-replay

More logs for ft-session-replay-material

More logs for ft-session-replay-compose

ft-native

1.1.3 (2026/04/30)

  1. Enhanced Native Crash backtrace robustness, added null address detection, and strengthened null pointer and wild pointer checks during libunwind.so backtracing in libft_native_exp_lib.so.
  2. Fixed potential secondary crash issue with libunwind.so during Native Crash handling.

1.1.2 (2025/07/18)

  1. Adapted to Android 16K page size (compatible with Android 15+).

1.1.1 (2024/06/22)

  1. Added logcat configuration capability for Native Crash and ANR.

1.1.0 (2024/03/22)

  1. Support capturing ANR Crash.
  2. Support capturing C/C++ Native Crash.
  3. Support collecting application runtime state upon crash.
  4. Support callbacks triggered by ANR and Native Crash.

More logs

ft-plugin ( AGP >=7.4.2 )

1.3.6 (2025/12/03)

  1. Support for UniApp WebView.
  2. Added knownWebViewClasses parameter to support ASM writing.
  3. Added functionality to output logs to files.
  4. Added verboseLog parameter for more verbose log output.
  5. Added numerical boundary handling in FTMethodAdapter.
  6. Added ignore configuration to filter internal methods of custom WebViews.

1.3.5 (2025/04/18)

  1. Optimized stability of plugin parameters during concurrent compilation.
  2. Added ASM writing for FTAutoTrack.trackRequestBuilder method, requires ft-sdk version 1.6.10 or above.
  3. Support automatic capture of Log.println logs, requires ft-sdk version 1.6.8 or above.

1.3.4 (2024/12/11)

  1. Optimized error log output.
  2. Fixed issue where minifyEnabled not being enabled caused sourcemap symbol files not to be generated.
  3. Support generating sourcemap without automatic upload via generateSourceMapOnly true.

1.3.3 (2024/09/04)

  1. Optimized automatic acquisition and upload of native symbol so files, support custom nativeLibPath specification.

1.3.2 (2024/08/13)

  1. Support automatic capture of React Native WebView events.

1.3.1 (2024/07/04)

  1. Added asmVersion configuration capability, supporting asm7 - asm9, default is asm9.
  2. Fixed an issue where custom WebView methods after ASM writing caused circular calls, preventing WebView content loading. (Involved methods: loadUrl, loadData, loadDataWithBaseURL, postUrl).
  3. IgnoreAOP supports declaration within a class to ignore all methods in that class.
  4. Added ignorePackages configuration to support ignoring ASM by package path.

1.3.0 (2024/03/22)

  1. Support automatic upload of datakit source maps, support upload of native symbols.
  2. Support capturing Application cold/warm start, Activity page navigation, View, ListView, Dialog, Tab click events.
  3. Support writing WebView Js listener methods.
  4. Support automatic writing of OkHttp Trace and Resource data.
  5. Support Gradle 8.0, AGP 8.0.
  6. Support IgnoreAOP ignore marker.
  7. Support compatibility with Alibaba Cloud hotfix framework.

More logs

ft-plugin-legacy ( AGP <=7.4.2 )

1.1.9 (2025/12/09)

  1. Support for UniApp WebView.
  2. Added knownWebViewClasses parameter to support ASM writing.
  3. Added functionality to output logs to files.
  4. Added verboseLog parameter for more verbose log output.
  5. Added numerical boundary handling in FTMethodAdapter.
  6. Added ignore configuration to filter internal methods of custom WebViews.

1.1.8 (2024/08/13)

  1. Support automatic capture of React Native WebView events.

1.1.7 (2024/07/04)

  1. Fixed an issue where overriding WebView subclass methods after ASM writing caused circular calls, preventing WebView content loading. (Involved methods: loadUrl, loadData, loadDataWithBaseURL, postUrl).
  2. IgnoreAOP supports declaration within a class to ignore all methods in that class.
  3. Added ignorePackages configuration to support ignoring ASM by package path.

1.1.6 (2024/03/22)

  1. Support automatic upload of datakit source maps, support upload of native symbols.
  2. Support capturing Application cold/warm start, Activity page navigation, View, ListView, Dialog, Tab click events.
  3. Support writing WebView Js listener methods.
  4. Support automatic writing of OkHttp Trace and Resource data.
  5. Support AGP versions below 7.4.2.
  6. Support IgnoreAOP ignore marker.
  7. Support compatibility with Alibaba Cloud hotfix framework.

More logs