NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #4171 most downloaded on pub.dev
A common platform interface for the Tracelet background geolocation plugin. Used by tracelet_android and tracelet_ios implementations.
Last release 19 days ago
18 Sep 2026
Release timing varies
gaps range from 8 days to 5 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 months old
165 releases · first in 2026
One column per month.
FIX: streamline geofence event payload handling in fromMap method.
FIX(ios): Remove TraceletCore+Dummy.swift / TraceletSyncFFI+Dummy.swift — @_silgen_name declarations from the old static library model caused "Undefin
TraceletCore+Dummy.swift / TraceletSyncFFI+Dummy.swift — @_silgen_name declarations from the old static library model caused "Undefined symbol" linker errors after the static→dynamic xcframework migration.ForegroundServiceStartNotAllowedException in LocationService.start() so calling ready() from the background on Android 12+ no longer crashes the host app; the foreground service start is deferred until the app returns to foreground.FIX: Persist geofence ENTER/EXIT events in offline queue and auto-sync to server — events were previously dispatched to the app but never stored in th
event_type, event_payload) for geofence events round-trips correctly through getLocations() and insertLocation().setSyncBodyBuilder (Issue #125).NOT_READY error before ready() is called to match iOS parity; previously Android silently ignored SDK calls before initialization (Issue #129).flutter_rust_bridge has not been initialized on release builds — TraceletCore is now a dynamic framework, preventing dead-code stripping of FRB symbols (Issues #116, #123, #124).Failed to lookup symbol 'frb_get_rust_content_hash' — Rust symbols are now loaded directly from libtracelet_core.so bypassing RTLD_LOCAL isolation (Issues #116, #123).is_moving state per location record so getLocations() returns accurate values instead of always returning the current live state (Issue #126).FIX(ios): prevent dead code stripping of flutter_rust_bridge symbols in release builds.
showPowerManager to handle aggressive battery restrictions on specific OEM devices.PERF: Optimize database timestamp queries for O(log N) fast filtering and resolve precision bugs (Issue #119).
sslPinningFingerprints natively across iOS and Android with Rust configs.Nothing published for this version
FIX(ios): safely resolve dynamic symbols when use_frameworks! :linkage => :dynamic is used.
use_frameworks! :linkage => :dynamic is used.FIX: Force speed motion manager to evaluate initial speed on Android to prevent the state machine from being permanently stuck in MOVING when indoors
MOVING when indoors (#115).flutter_rust_bridge has not been initialized crash by ensuring the Rust core is instantiated and initialized before accessing methods (#116).CHORE: Sync release versions across all federated packages and update Swift Package Manager configuration.
CHORE: Align federated package versions and include additional patch updates.
FEAT: Implement short-lived WakeLocks for transient background tasks (startBackgroundTask / stopBackgroundTask), improving background execution reliab
startBackgroundTask / stopBackgroundTask), improving background execution reliability on Android (matches iOS beginBackgroundTask).tracelet_sync module, which must now be included if you require network synchronization.resolveAddress).CHORE: Sync release versions across workspace.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Bump "tracelet_platform_interface" to 3.1.10.
3.1.10.FIX(android): conditionally apply kotlin-android plugin to support older flutter SDKs while preventing warnings in modern Flutter environments.
release.yml.- Fix iOS SPM publishing
FIX(android): apply kotlin-android plugin to fix gradle build errors on newer AGP versions.
Nothing published for this version
Nothing published for this version
CHORE: Sync release versions across workspace.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
FIX(ios): Add missing FlutterFramework dependency to SPM plugin configuration to resolve compilation failures and PlatformExceptions.
FlutterFramework dependency to SPM plugin configuration to resolve compilation failures and PlatformExceptions.FEAT: Massive Architecture Rewrite — Core algorithms are now powered by a high-performance Rust Core using flutter_rust_bridge.
flutter_rust_bridge.MotionDetectionMode.smart powered by the Rust battery budget engine.FEAT: Smart Foreground Notification Visibility (Android) — Added dynamic foreground service notification management. The notification now intelligentl
tl.MotionDetectionMode.speed). In this mode, motion state transitions are driven directly by GPS speed calculations rather than raw accelerometer hardware. This provides enhanced compatibility and reliability on devices with aggressive sensor sleep policies, particularly in vehicular tracking scenarios.stopTimeout countdown. Previously, if the device was still for 5 seconds on a smooth road, it would begin the 60-second stop countdown and ignore any subsequent bumps or shakes. Now, the accelerometer remains active during the countdown and will correctly abort the stationary transition if motion resumes (#85).TraceletHasRequestedAlways is now properly reset upon notDetermined OS state.retryBackoffCap and retryBackoffBase. Time values are now properly cast as milliseconds instead of seconds, resolving a severe bug where HTTP retries fired every 60ms during network failure, causing excessive CPU/network thrashing and a massive 58KB+ log flood.Tracelet.locationStream pipeline. Replaced the faulty asyncMap batch processing with a highly robust .expand() implementation. The Tracelet.locationStream now correctly parses, type-casts, and guarantees delivery of every individual Location object without throwing type '_Map<Object?, Object?>' is not a subtype of type 'Map<String, dynamic>' or silently discarding valid coordinates.LocationEngine.stop from unintentionally overriding the global stateManager.enabled flag during speed-based motion transitions.MotionDetectionMode.accelerometer as the default to ensure immediate indoor responsiveness upon installation.Packages with breaking changes:
2.0.8.Packages with breaking changes:
Packages with other changes:
Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
tracelet - v2.0.7tracelet_doctor - v1.0.2FIX(interface): correct intToAuthStatus permission index mappings ([#80](https://github.com/Ikolvi/Tracelet/issues/80)).
CHORE: Version bump for monorepo consistency and package lockstep alignment.
CHORE: Version bump for monorepo consistency and package lockstep alignment.
CHORE: Version bump for monorepo consistency and native SDK alignment.
FIX: Removed unreliable timestamp drift heuristic from location spoofing detection.
CHORE: Version bump for iOS status bar fix consistency.
BREAKING: Migrated all platform communication to Pigeon for strictly-typed host and flutter APIs.
Config into a nested compound model (GeoConfig, AppConfig, AndroidConfig, HttpConfig, LoggerConfig, MotionConfig, GeofenceConfig, SecurityConfig).shakeThreshold, stillThreshold, and stillSampleCount to TlMotionConfig Pigeon model for granular motion sensitivity tuning.Tl (e.g., TlAuthorizationStatus, TlTrackingMode) to avoid naming collisions while maintaining stable public-facing Dart enums.2: 3: - CHORE: Version bump for monorepo consistency and native SDK alignment. 4: 5: ## 1.9.2
2: 3: - CHORE: Version bump for monorepo consistency and native SDK alignment. 4: 5: ## 1.9.2
tracelet 1.9.2 release. No interface changes.Nothing published for this version
CHORE: Constraint bump for tracelet 1.9.1 release. No interface changes.
tracelet 1.9.1 release. No interface changes.FIX: _mapToGeofence was silently dropping extras and vertices when converting the Dart map into the Pigeon TlGeofence, so they never reached native an
_mapToGeofence was silently dropping extras and vertices when converting the Dart map into the Pigeon TlGeofence, so they never reached native and were persisted as null (#58). Both fields now round-trip from Geofence.toMap() through the platform channel intact. The earlier 1.8.12 patch only addressed the Android read path; the actual data loss was one layer up at the federated platform-interface layer and affected both Android and iOS.tracelet 1.9.0 typed permission API additions (#57). No interface changes — the int-based platform-interface methods are unchanged.pigeon_tracelet_test.dart asserting extras and vertices reach TraceletHostApi.addGeofence.CHORE: Version bump for first-fix latency improvement in tracelet_android and tracelet_ios (#54). No interface changes.
tracelet_android and tracelet_ios (#54). No interface changes.CHORE: Version bump for geofence/location extras round-trip fix in tracelet_android (#51 follow-up).
extras round-trip fix in tracelet_android (#51 follow-up).FIX: Version bump for secondary FlutterEngine guard fix in tracelet_android and tracelet_ios (#51).
tracelet_android and tracelet_ios (#51).FIX: Version bump for killed-state tracking fix in tracelet_android (#50).
tracelet_android (#50).FEAT: Add syncInterval field to HttpConfig for fixed-cadence HTTP sync (#50).
syncInterval field to HttpConfig for fixed-cadence HTTP sync (#50).CHORE: Version bump for HTTP sync payload consistency fix (#48).
CHORE: Align federated package versions and include additional patch updates.
CHORE: Version bump for HTTP sync headers fix.
getPrivacyZones() lazy .cast<Map<String, Object?>>() — eagerly deep-cast each map to prevent _Map<Object?, Object?> type error at runtime.CHORE: Version bump for getCurrentPosition fallback fix (#46).
getCurrentPosition fallback fix (#46).CHORE: Version bump for Android pre-ready guard fixes and strict native SDK pinning.
CHORE: Version bump for iOS pre-ready guard fixes.
CHORE: Version bump for Android/iOS stability fixes.
CHORE: Version bump for iOS periodic mode location indicator fix.
FEAT: Add destroySyncedLocations() Pigeon HostApi method — deletes only synced locations and returns count.
destroySyncedLocations() Pigeon HostApi method — deletes only synced locations and returns count.coords map).FEAT: Migrate all event delivery from EventChannels to Pigeon TraceletEventApi FlutterApi.
TraceletEventApi FlutterApi.PigeonEventReceiver with 15 broadcast StreamControllers for type-safe native→Dart event routing.PigeonTracelet platform implementation wrapping Pigeon HostApi + FlutterApi.sdk/android (Maven Central) and sdk/ios (CocoaPods/SPM) modules.FEAT: Add TraceletEventApi Pigeon FlutterApi with 15 event methods replacing EventChannels.
TraceletEventApi Pigeon FlutterApi with 15 event methods replacing EventChannels.PigeonEventReceiver with 15 broadcast StreamControllers for type-safe native→Dart event routing.PigeonTracelet platform implementation wrapping Pigeon HostApi + FlutterApi.TraceletPlatform interface.^1.6.3-alpha.1.FEAT: Add setDynamicHeaders, setRouteContext, clearRouteContext, registerHeadlessHeadersCallback, and registerHeadlessSyncBodyBuilder platform methods
setDynamicHeaders, setRouteContext, clearRouteContext, registerHeadlessHeadersCallback, and registerHeadlessSyncBodyBuilder platform methods.^1.6.0.CHORE: Update cross-package dependency constraints to ^1.5.0.
^1.5.0.CHORE: Update cross-package dependency constraints to ^1.4.6.
^1.4.6.Your coding agent can read these notes before it upgrades. Set up the MCP server →