v0.17.0-beta.2
Pre-release
Pre-release
·
24 commits
to main
since this release
Faro Flutter SDK v0.17.0-beta.2
✨ Added
- Session rotation (#52): Sessions now rotate automatically after 15 minutes of inactivity or 4 hours of total lifetime. This change aligns with the Faro session definition and the collector's server-side validation. Upon rotation, a new session ID is generated, and a
session_extendevent is emitted (the initial session emitssession_start). The previous session ID is recorded in thepreviousSessionattribute to allow backends to link sessions. Note that automatic vitals (CPU, memory, etc.) count as activity only while the app is in the foreground. A foregrounded but idle app remains in one session, while a backgrounded app's vitals cannot keep its session alive. Sampling is not re-evaluated on rotation. See the Reference docs for full details.
🔧 Fixed
- Offline transport is now resilient to malformed cache data (#22). A corrupt cached entry (e.g., from a partial write or schema drift) is now skipped and purged instead of aborting the read and permanently blocking all remaining cached telemetry. Additionally, payloads with user-supplied log context or event attributes that cannot be JSON-encoded (such as a
DateTime, custom object, or non-finite double) are dropped with a type-only diagnostic rather than failing the cache write. - Offline transport connectivity probe reliability (#11): The DNS lookup used by
OfflineTransportto confirm internet access now has a 5-second timeout (previously it could hang indefinitely on some platforms, stalling online/offline decisions) and catches all probe errors instead of onlySocketException. Any probe failure is treated as offline: while offline, payloads are cached on disk and flushed once connectivity returns, whereas a send attempted while actually offline is dropped without retry. This means a false "offline" only costs disk usage, while a false "online" could risk permanent data loss. Overlapping probes from rapid connectivity changes are now ordered, ensuring that a stale probe result that completes after a newer probe cannot overwrite the newer online/offline state. The lookup function is also injectable for testing via the new requiredaddressLookupparameter and optionallookupTimeoutparameter onInternetConnectivityService.
See CHANGELOG.md for complete details.
Full Changelog: v0.17.0-beta.1...v0.17.0-beta.2