NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #4440 most downloaded on pub.dev
Web implementation of the Tracelet background geolocation plugin.
Last release 18 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
160 releases · first in 2026
One column per month.
CHORE: Version bump to align with 3.2.11 platform release.
FIX: streamline geofence event payload handling in fromMap method.
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(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_web" 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
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: Smart Motion Mode — Introduced MotionDetectionMode.smart mode interface mapping for web platform.
MotionDetectionMode.smart mode interface mapping for web platform.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.locationEvents, motionChangeEvents, watchPositionEvents, activityChangeEvents, providerChangeEvents, geofenceEvents, heartbeatEvents, httpEvents, scheduleEvents, powerSaveChangeEvents, connectivityChangeEvents, enabledChangeEvents, notificationActionEvents, authorizationEvents) — these were previously unimplemented and threw UnimplementedError, preventing Tracelet.ready() from completing on web.try/catch around getCurrentPosition() to intercept synchronous JS errors thrown on insecure origins or blocked contexts, and added a 15-second Dart-side timeout as a safety net.PositionOptions.timeout removed to prevent silent timeouts blocking the browser's native permission dialog.WebLocationEngine now respects MotionConfig.motionDetectionMode = speed, transitioning isMoving state based on GPS speed vs. speedMovingThreshold with a configurable speedStationaryDelay debounce timer.addPrivacyZone, removePrivacyZone, getPrivacyZones), audit trail (verifyAuditTrail, getAuditProof), carbon estimator (getCarbonReport), and database encryption stubs (isDatabaseEncrypted, encryptDatabase, getAttestationToken).tracelet 2.1.0.tracelet_platform_interface constraint to ^2.1.0.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.2tracelet_platform_interface constraint to ^2.0.8.FIX(interface): correct intToAuthStatus permission index mappings ([#80](https://github.com/Ikolvi/Tracelet/issues/80)).
tracelet_platform_interface constraint to ^2.0.7.CHORE: Update tracelet_platform_interface constraint to ^2.0.6.
tracelet_platform_interface constraint to ^2.0.6.CHORE: Version bump for monorepo consistency and package lockstep alignment.
tracelet_platform_interface constraint to ^2.0.5.CHORE: Version bump for monorepo consistency and native SDK alignment.
tracelet_platform_interface constraint to ^2.0.4.FIX: Removed unreliable timestamp drift heuristic from location spoofing detection.
CHORE: Version bump for iOS status bar fix consistency.
tracelet_platform_interface constraint to ^2.0.1.CHORE: Global version synchronization for the Tracelet 2.0.0 release.
tracelet_platform_interface constraint to ^2.0.0.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_platform_interface 1.9.2. No web-side changes.Nothing published for this version
CHORE: Constraint bump to tracelet_platform_interface 1.9.1. No web-side changes.
tracelet_platform_interface 1.9.1. No web-side changes.CHORE: Constraint bump to tracelet_platform_interface 1.9.0 (#58 fix). No web-side changes.
tracelet_platform_interface 1.9.0 (#58 fix). No web-side changes.CHORE: Version bump for first-fix latency improvement in tracelet_android and tracelet_ios (#54).
tracelet_android and tracelet_ios (#54).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).CHORE: Version bump for syncInterval feature (#50).
syncInterval feature (#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 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() web implementation.
destroySyncedLocations() web implementation.CHORE: Update cross-package dependency constraints to ^1.7.0.
^1.7.0.CHORE: Update cross-package dependency constraints to ^1.6.3-alpha.1.
^1.6.3-alpha.1.FIX: Add 5 missing HTTP Sync method overrides (setDynamicHeaders, setRouteContext, clearRouteContext, registerHeadlessHeadersCallback, registerHeadles
setDynamicHeaders, setRouteContext, clearRouteContext, registerHeadlessHeadersCallback, registerHeadlessSyncBodyBuilder) that previously threw UnimplementedError at runtime.WebHttpEngine now supports dynamic headers and route context in HTTP requests.CHORE: Update tracelet_platform_interface dependency constraint to ^1.6.0.
tracelet_platform_interface dependency constraint to ^1.6.0.CHORE: Update tracelet_platform_interface dependency constraint to ^1.5.0.
tracelet_platform_interface dependency constraint to ^1.5.0.CHORE: Update tracelet_platform_interface dependency constraint to ^1.4.6.
tracelet_platform_interface dependency constraint to ^1.4.6.Your coding agent can read these notes before it upgrades. Set up the MCP server →