Added setEnableConsoleLog(...) and @cloudcare/hvigor-ohos-plugin, supporting automatic collection of console.* and hilog.* logs; requires both integrating the Plugin and enabling log configuration. Its optional prefix parameter supports both regular message prefixes and DataKit allow rules configured by message, log_source, and HiLog's tag and domain; log levels remain controlled by setLogLevelFilters(...), and the rules take effect before automatic logs enter the SDK queue.
Added compilation-plugin-based cold start collection, automatically reporting process startup, AbilityStage initialization, first UIAbility creation, and first-frame duration without manual lifecycle recording.
Added FTRUMConfig.setResourceUrlHandler(...), supporting filtering of automatic Resources for RCP, Axios, and NetworkKit; Trace header injection and manual Resources are not affected.
Added file cache governance capabilities, supporting total cache capacity limits, eviction policy, FileStore direct upload, and legacy cache migration.
Added FTRUMConfig.setViewTrackingHandler(handler, type), supporting filtering, renaming, and adding attributes to automatic Views by Router, Navigation, or all; the handler receives FTViewTrackingContext containing source page information.
Added NetworkKit and @ohos/axios Resource performance timing collection and waterfall chart phase mapping; when performance timing is missing, or the final timestamp is earlier than the previous phase, the actual measured total request duration is used as a fallback instead, avoiding invalid phases.
Optimized FileStore write, capacity statistics, and recovery diagnostics, improving stability in file cache and shadow write scenarios.
Optimized the remote data filtering rule refresh mechanism: upload tasks check for updates by pull_interval at startup, numeric intervals are parsed in nanoseconds, and unchanged server content is not reprocessed.
Fixed the issue where automatic Resources completing after their owning Action was closed could lose Resource/Error counts and Action association.
Fixed the issue where View Resource and pending counts were not refreshed in time when Resources completed after the Action had already closed.
Fixed the RCP Resource waterfall chart computing first byte and download phases using reconstructed durations, causing missing transfer phases or abnormal phase durations.
Fixed Resources that did not return an HTTP response, such as timeouts and connection failures, and their associated Network Errors missing resource_status=0.
Fixed Actions, Resources, and Errors generated by Workers, and Network Errors generated by Resources, missing bound user and network attributes.
Fixed Actions, Resources, Errors, and associated Network Errors losing SDK common attributes after processing by a custom LineDataModifier.
Fixed automatic Resources potentially being dropped when Axios and NetworkKit requests completed without providing network status but had valid durations.
Added RUM device metric collection; CPU, memory, battery current, and FPS can be configured for Views via setDeviceMetricsMonitorType(...), and CPU, memory, and battery metrics can be added to Errors via setExtraMonitorTypeWithError(...). Existing setDeviceMetricsDetectFrequency(...) and single-argument setDeviceMetricsMonitorType(...) calls remain supported.
Added FTRUMConfig.setActionTrackingHandler(...) to filter automatic Click Actions: returning null skips collection, and returning undefined keeps default collection.
Fixed the duration calculation for UI jank Long Tasks, now using the system MAIN_THREAD_JANK event instead.
Fixed the issue where RUM Actions, Resources, and Errors occasionally missed app_id after EventConsumer Worker restart, ensuring data is associated with the configured RUM application.
Fixed the resource_id of native and WebView Resources and their generated Network Errors not using stable UUIDs, facilitating associated queries.
Fixed duplicate RUM data reporting during retry uploads; the original sdk_data_id is retained and reused.
Changed WebView data supplementation rules: view_path_name is no longer supplemented automatically; when view_referrer is missing, it falls back to the current native View.
Changed the default automatic Action name to ComponentType/ComponentText#ComponentID; components in lists and tabs append #position:n.
Changed remote data filtering rules: rules are pulled automatically when setEnableDataFilter(true) is enabled and a valid reporting endpoint is configured; cached data matching updated rules is cleared.
Optimized offline data upload: after retries are exhausted, upload waits for external triggers without blocking subsequent uploadable data.
Added DataModifier, supporting modification or masking of fields and tags for Logs, native RUM, and WebView RUM; the original value is retained when the field callback returns null.
Added the LineDataModifier line-level data patching capability; the callback receives merged data and only overwrites fields present in the returned patch, and returning null or an empty Map does not modify data.
Added RUM and Logging data filtering capabilities, enabled by default; the toggle can be controlled via setEnableDataFilter(...), and local rules can be configured via setDataFilters(...); local and remote rules take effect together, and data matching the rules is not written to the local cache.
Added runtime reporting endpoint switching; the endpoint can be switched via FTSDK.setDatakitUrl(...) or FTSDK.setDatawayUrl(..., clientToken); remote configuration refreshes automatically after switching, and DataWay mode requires a client token.
Added remote configuration capability; local cache and supported runtime updates are merged at startup, it can be enabled via setRemoteConfiguration(...), and refreshed manually with updateRemoteConfig(...).
Added RUM Action API extensions: addAction supports setting duration and extension attributes, and startAction supports setting extension attributes.
Removed addActionWith..., startActionWith..., and the unfinished public stopAction APIs; please migrate to addAction and startAction.
Added extension attribute support for the Resource lifecycle; attributes of startResource and stopResource are merged with ResourceParams in call order.
Removed the unused statusCode and contentLength parameters from the public stopResource; please remove the corresponding call arguments.
Changed the addError overload form; dateline can be placed before errorType, and Worker callbacks are no longer a public interface.
Optimized the Error and Resource collection pipelines, removing high-frequency internal Debug logs during normal collection.
Added upload request compression configuration, controlled via setCompressIntakeRequests(...); deflate is enabled by default and falls back to plaintext upload when unavailable.
Added automatic sync and upload control configuration; the initial state can be set via FTSDKConfig.setAutoSync(...), or the sync state can be changed at runtime via FTSDK.setAutoSync(...); automatic upload uses a 10-second aggregation window by default, and FTSDK.flushSyncData() can be called when it is disabled or immediate upload is needed.
Added sync pagination configuration; predefined pagination can be set via setSyncPageSize(...), or custom sync entry counts via setCustomSyncPageSize(...).
Added upload network configuration; proxy, proxy authentication, and DNS can be set via setProxy(...), setProxyAuthenticator(...), and setDns(...) respectively.
Optimized thread pool and serial database task handling, improving data consistency in high-concurrency scenarios.
Optimized the idle reclamation strategy for ANR and Crash Workers; Workers are rebuilt on demand.
Changed Native Crash diagnostic log collection conditions: collected only when a RUM App ID is configured and FTRUMConfig.setEnableTrackAppCrash(true) is enabled.
Added SDK debug configuration; the log level can be set via FTSDKConfig.setSdkLogLevel(...), and internal log files can be written via FTSDKConfig.setEnableInnerLogFile(...).
Added FTTraceConfig.setTraceHeaderHandler(...), providing custom Trace context for individual requests, which the SDK injects into request headers and associates with RUM Resources.
Changed RUM and Log cache count configuration: the RUM cache count is now set via FTRUMConfig.setRumCacheLimitCount(...); the Log cache count continues to use FTLoggerConfig.setLogCacheLimitCount(...).
Changed public exports: WebView integration, advanced RCP interceptor assembly, and Trace interceptor types are exported from the root Index, so they no longer need to be imported from internal paths.
Fixed missing dynamic attributes (including user data) when confirming View data.
Fixed occasional instability in randomly assigned user IDs.
Added a @ohos/axios automatic collection compatibility path: axios versions that do not support interceptorChain can call applyFTAxiosTrack(...) to collect data through request and response interceptors.
Fixed the issue where console log instrumentation might not take effect when cold start and console.* and hilog.* automatic collection are enabled simultaneously.
Fixed the issue where cold start first-frame observation failed to register before WindowStage.loadContent(...) completed; it now retries automatically after loading succeeds.
Added NetworkKit response performance timing collection, passed to the Resource waterfall chart; when performance timing is missing or invalid, the actual total request duration is used as a fallback.
Fixed the issue where transmission failures without an HTTP response in the NetworkKit interceptor chain only produced a Resource with responseCode=0 and lacked an associated Network Error; a Resource and Network Error containing diagnostic error information are now reported together, without changing the caller's original failure result.
Changed the NetworkKit interceptor integration approach to use the versioned FTSDKExtensionBridge contract, avoiding ft_sdk_ext depending on internal source paths such as ft_sdk/src/main/....
Changed the minimum compatible API Level to 22.
Changed the distribution of the NetworkKit HttpInterceptor API, splitting it into an extension HAR; integrate ft_sdk_ext when using this API.
Optimized Native Crash monitoring diagnostic logs: detailed NAPI, signal handling, and crash parsing logs in normal paths are adjusted to Debug level, and redundant lifecycle logs are removed; collection APIs and behavior remain unchanged.
Optimized Native Crash collection logic: it automatically adapts based on the installed ft_sdk dependency, passing only real native crashes to FTNativeCrashAdapter; JavaScript Crashes continue to be handled by the ft_sdk Error collection pipeline, avoiding duplicate reporting.