PackageTrack
Sign in Get early access

tracelet_web

Web implementation of the Tracelet background geolocation plugin.

3.8.7 9.2K downloads/mo #3052 most downloaded on pub.dev Ikolvi/Tracelet

What this package is like to depend on

Last release 7 days ago

16 Aug 2026

Ships on a steady schedule

a new release about every 8 days

Nearly every release is documented

notes for 144 of 154 stable releases

Nothing withdrawn

no release was ever pulled

6 months old

159 releases · first in 2026

159 releases in the last 12 months

see the full history below

Release timeline

159 releases · Feb 2026 to Aug 2026
Release Pre-release

Releases

latest 60 of 159
  1. 3.8.7 16 Aug 2026
    Release notes

    Tracelet Sync iOS SDK v3.8.7

    Open source →
    Release notes

    Release tracelet_web v3.8.7

    Open source →
    Release notes

    Version alignment with tracelet 3.8.7.

    Open source →
  2. 3.8.6 16 Aug 2026
    Release notes

    Tracelet Sync iOS SDK v3.8.6

    Open source →
    Release notes

    Release tracelet_web v3.8.6

    Open source →
    Release notes

    Version alignment with tracelet 3.8.6.

    Open source →
  3. 3.8.6-alpha.1 15 Aug 2026 pre-release

    Nothing published for this version

  4. 3.8.5 15 Aug 2026
    Release notes

    FIX: setOdometer() drops the reference the odometer measures from. Accumulation runs off _lastLocation, which the setter left in place, so the next browser fix added the whole span since the previous one and a reset survived exactly one fix — the same defect the native engines had, reached independently (#387).

    Version alignment with tracelet 3.8.5.

    Open source →
  5. 3.8.4 13 Aug 2026
    Release notes

    Version alignment with tracelet 3.8.4.

    Open source →
  6. 3.8.3 12 Aug 2026
    Release notes

    FIX: maxRecordsToPersist: -1 no longer throws RangeError on every insert. -1 is the documented "unlimited" sentinel, and because ready() resolves every field before it crosses the channel it is what the default configuration sends — so the unguarded while (_locations.length > _maxRecords) removeAt(0) emptied the store and then ran off the end of it on the first insert of every web session. A non-positive cap now means unlimited, as it already did on the native platforms (#362).

    FIX: maxDaysToPersist is now enforced on web. applyConfig never read the key, so the web store had no age-based retention at all. A record whose timestamp is absent or unparseable is kept rather than treated as ancient; the record cap bounds those (#361).

    Open source →
  7. 3.8.2 11 Aug 2026
    Release notes

    Version alignment with tracelet 3.8.2.

    Open source →
  8. 3.8.1 11 Aug 2026
    Release notes

    Version alignment with tracelet 3.8.1.

    Open source →
  9. 3.8.0 08 Aug 2026
    Release notes

    Version alignment with tracelet 3.8.0.

    Open source →
  10. 3.8.0-beta.2 06 Aug 2026 pre-release
    Release notes

    FEAT: Tracelet.getCurrentLocationTuning() reports the location-filter thresholds actually in force, read back from the native processor rather than from the config you set. activeConfig is a Dart-side mirror of the last Config passed in, so it cannot tell you whether a value reached the filter that uses it — and it cannot show a transport-mode auto-tune, which changes these thresholds with no config call at all. Returns null before a tracking session has built a processor, and always null on Web (#303).

    FIX: the method-channel android config block now carries the same geofenceModeHighAccuracy value as the geofence block. Native reads the key from both, so emitting the raw Android-only flag in one and the OR'd value in the other made behavior depend on which block the platform happened to consult (#305).

    FIX: (Android + iOS) the location-filter configuration now reaches the Rust processor at runtime. setConfig() rebuilt the processor only for a short list of location keys, so trackingAccuracyThreshold, odometerAccuracyThreshold, maxImpliedSpeed, filterPolicy, enableAdaptiveMode, rejectMockLocations, mockDetectionLevel, the sparse-update trio and useKalmanFilter were accepted, cached, and then ignored until the next cold start. Because LocationProcessor captured its base thresholds at construction, this also broke the #301 guarantee that disabling autoTuneFromTransportMode restores "the values you configured" — it restored the values captured when the processor was built. A new set_base_tuning carries thresholds in without dropping the positional anchor a rebuild would cost (the reason retune exists, #299); the remaining constructor-only parameters trigger a targeted rebuild, and the Kalman filter is toggled independently of the processor (#303).

    FIX: (iOS) the whole LocationFilter block now reaches the config cache. Every transport serializes it as a filter sub-map nested inside geo, but the iOS ConfigManager flattened only one level and then stored that block as a single opaque value no getter ever read — so trackingAccuracyThreshold, odometerAccuracyThreshold, maxImpliedSpeed, rejectMockLocations, mockDetectionLevel and useKalmanFilter were pinned to their defaults (100 m / 0 m / 80 m/s / off) no matter what was configured, at ready() as well as at runtime. The change detection added above compared key names absent from both config snapshots, so a filter change triggered neither the targeted rebuild nor setBaseTuning — the fix landed on a bridge that was never connected. Caches persisted in the nested shape are lifted on load, because autoResumeTracking() starts the pipeline off the persisted cache with no ready() in between (#303).

    FIX: (Android + iOS) LocationFilter.policy is now applied. It is serialized under policy by every transport, while getFilterPolicy() — and the processor-rebuild key list — read filterPolicy, so the value was cached under a name nothing asked for and the policy stayed at adjust however it was configured. It is renamed during flattening, so both readers see it (#303).

    FIX: (Android + iOS) logMaxDays is now applied. Both platforms pruned logs only by a row count derived from logLevel, so the configured retention window was accepted and discarded — logMaxDays: 3 and logMaxDays: 90 behaved identically. Log pruning now enforces both caps (#304).

    FIX: (iOS) disableLocationAuthorizationAlert is now honored. The permission manager requested authorization unconditionally, so apps that wanted to own their pre-permission UX could not suppress the system prompt. It now reports the current status instead of prompting (#304).

    FIX: (Web) GeofenceConfig.geofenceModeHighAccuracy is now honored. The web plugin read only the deprecated AndroidConfig.geofenceModeHighAccuracy, so setting the documented cross-platform flag had no effect on web. It is now OR'd with the deprecated flag, matching both Pigeon hosts, and geofenceExitAccuracyMax is carried too (#305).

    FIX: the method-channel transport no longer drops geofence configuration. _geofenceToMap emitted two of the five geofence keys, silently discarding geofenceModeHighAccuracy (so no OR was performed on that path), geofenceInitialTrigger, and geofenceExitAccuracyMax — the #276 tunable (#305).

    FIX: the four built-in TraceletProfile presets now set high-accuracy geofencing through the cross-platform geofence block instead of the deprecated android one. TraceletProfile.highAccuracy therefore enables it on iOS as well, and the deprecated field has no remaining internal dependants (#305).

    FIX: the pure-Dart GeofenceEvaluator now applies the geofenceExitAccuracyMax policy (-1 full gating, 0 disabled, N clamp). It is documented as a mirror of the Rust core but gated EXIT on raw accuracy, diverging from both native managers, which pass accuracy through effectiveExitAccuracy first (#276). The parameter defaults to -1, so existing callers are unaffected (#306).

    FIX: the Rust geofence evaluator drops pending exit confirmations for fences a re-index no longer covers. clear() and remove_geofence() both pruned them; index_geofences() did not, so a half-accumulated count survived and could contribute to a later EXIT (#306).

    DEPRECATED: AuditConfig.includeExtrasInHash and AttestationConfig.verificationUrl were never implemented — no platform reads either value. They are now annotated so the analyzer surfaces it, rather than being silently discarded at runtime. Implementing them is not a patch: the first changes what the audit chain hashes and so invalidates every existing chain, and the second needs a token-verification transport (#304).

    Open source →
  11. 3.8.0-beta 06 Aug 2026 pre-release
    Release notes

    Version alignment with tracelet 3.8.0-beta.

    Open source →
  12. 3.8.0-alpha 05 Aug 2026 pre-release
    Release notes

    Version alignment with tracelet 3.8.0-alpha.

    Open source →
  13. 3.7.6 05 Aug 2026
    Release notes

    Version alignment with tracelet 3.7.6.

    Open source →
  14. 3.7.5 04 Aug 2026
    Release notes

    Version alignment with tracelet 3.7.5.

    Open source →
  15. 3.7.4 03 Aug 2026
    Release notes

    Version alignment with tracelet 3.7.4.

    Open source →
  16. 3.7.3 01 Aug 2026
    Release notes

    Version alignment with tracelet 3.7.3.

    Open source →
  17. 3.7.2 01 Aug 2026
    Release notes

    Version alignment with tracelet 3.7.2.

    Open source →
  18. 3.7.1 29 Jul 2026
    Release notes

    Version alignment with tracelet 3.7.1.

    Open source →
  19. 3.7.0 29 Jul 2026
    Release notes

    Version alignment with tracelet 3.7.0.

    Open source →
  20. 3.6.15 28 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.15.

    Open source →
  21. 3.6.14 27 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.14.

    Open source →
  22. 3.6.13 26 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.13.

    Open source →
  23. 3.6.12 26 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.12.

    Open source →
  24. 3.6.11 25 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.11.

    Open source →
  25. 3.6.10 24 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.10.

    Open source →
  26. 3.6.9 24 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.9.

    Open source →
  27. 3.6.8 23 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.8.

    Open source →
  28. 3.6.7 23 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.7.

    Open source →
  29. 3.6.6 22 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.6.

    Open source →
  30. 3.6.5 21 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.5.

    Open source →
  31. 3.6.4 20 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.4.

    Open source →
  32. 3.6.3 19 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.3.

    Open source →
  33. 3.6.2 18 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.2.

    Open source →
  34. 3.6.1 17 Jul 2026
    Release notes

    Version alignment with tracelet 3.6.1.

    Open source →
  35. 3.6.0 16 Jul 2026
    Release notes

    FEAT: Tracelet.updateLocationProviderOptions() — live provider-options override without a pipeline restart, on iOS and Android (#241).

    Version alignment with tracelet 3.6.0.

    Open source →
  36. 3.5.7 13 Jul 2026
    Release notes

    FIX: Build fails without AGP built-in Kotlin (AGP <9 / builtInKotlin=false) (#239).

    Open source →
  37. 3.5.6 09 Jul 2026
    Release notes

    FIX: Custom sync body 400 Bad Request HTTP errors now gracefully return fallback results instead of propagating fatal exceptions in native Sync engines (#238).

    Open source →
  38. 3.5.5 07 Jul 2026
    Release notes

    FIX: Ensure foreground service is properly started in periodic mode when configured (#237).

    Open source →
  39. 3.5.4 30 Jun 2026
    Release notes

    FIX: Enrich geofence transition events with real coordinate metrics and battery (#231). FIX: Propagate runtime setConfig changes to active native tracking/sensor loops (#230). FIX: Null-guard subsystems during teardown so Activity destruction never throws (#227). FIX: Android: standard geofence mode no longer runs a foreground service, complying with Google Play's 2026-10-28 foreground-service-for-geofencing policy.

    Open source →
  40. 3.5.3 30 Jun 2026
    Release notes

    FIX: Added explicit ProGuard keep rules for TraceletStartupProvider in the tracelet_android package to prevent ClassNotFoundException on process start when aggressive shrinking (like R8 full mode) is used (#228).

    Open source →
  41. 3.5.2 23 Jun 2026
    Release notes

    FIX: Android continuous tracking no longer silently stops after a while on aggressive OEMs (Samsung One UI, etc.). The foreground-service wakelock used a fixed 10-minute auto-expiry and was never renewed, so once it lapsed the CPU could deep-sleep and FusedLocationProvider stopped delivering updates with no error or callback. The wakelock is now renewed for the lifetime of tracking (#222).

    Open source →
  42. 3.5.1 19 Jun 2026
    Release notes

    FEAT: Crash detection now uses the device barometer as an extra confirmation clue — a serious crash or airbag deployment causes a quick cabin air-pressure change that raises crash confidence on phones with a pressure sensor; phones without one skip it with no downside (#173). FEAT: Stronger crash/fall corroboration — a sudden post-impact speed collapse (#181) and the free-fall → impact → stillness signature (#180) now raise confidence, and confirmation is process-death-safe so a confirmed event survives the app being killed (#182).

    Open source →
  43. 3.5.0 19 Jun 2026
    Release notes

    FEAT: Crash-detection ML model promoted from beta to stable (trained on a CC0 / public-domain dataset, cleared for commercial use) and the on-device model cache now auto-re-downloads on a new published version (#183).

    Open source →
  44. 3.4.2 18 Jun 2026
    Release notes
    • REFACTOR: reformat test files and sync body context for consistent code style. (5552f795)
    Open source →
    Release notes
    • FEAT: implement telematics deduplication with synced-state tracking and improved foreground service fault tolerance. (0581c6e7)
    Open source →
  45. 3.4.1 17 Jun 2026
    Release notes
    • FEAT(geofence): cross-platform geofenceModeHighAccuracy via GeofenceConfig. (491d5b83)
    • DOCS: add Discord community invitation link to READMEs and website documentation. (c3baa1c3)
    Open source →
    Release notes
    • Update a dependency to the latest release.
    Open source →
  46. 3.4.0 17 Jun 2026
    Release notes
    • REFACTOR: extract issues 185 and 198, fix iOS config mapping. (1d088e0d)
    • FIX: resolve accuracy priority mappings in Android and iOS. (65f5127d)
    Open source →
    Release notes
    • Update a dependency to the latest release.
    Open source →
  47. 3.3.4 16 Jun 2026
    Release notes

    CHORE: bump version.

    Open source →
  48. 3.3.3 15 Jun 2026
    Release notes
    • FIX(android): deliver headless geofence events after reboot in high-accuracy mode (#185). (b197dc5f)
    Open source →
    Release notes
    • FIX: Correct the geofenceModeHighAccuracy config mapping in Web plugin to prevent runtime getter errors. (065b3bbc)
    Open source →
  49. 3.3.2 15 Jun 2026
    Release notes
    • FIX(plugin): correct native-map -> Pigeon field mapping (#175). (feb17dcf)
    Open source →
  50. 3.3.1 14 Jun 2026
    Release notes
    • FIX(crash): harden crash/fall detection (confirmation survival, threshold, debounce, sample rate). (0a17e804)
    Open source →
    Release notes
    • CHORE: version bump for patch release
    Open source →
  51. 3.3.0 14 Jun 2026
    Release notes
    • FEAT (Driving & Safety): On-device driving-behavior telematics — harsh_braking / harsh_acceleration / harsh_cornering / speeding via TelematicsConfig + Tracelet.onDrivingEvent (opt-in, default off) (#163).
    • FEAT (Driving & Safety): On-device transport-mode classifier (still/walking/running/cycling/vehicle) fusing accelerometer + GPS via ClassifierConfig + Tracelet.onModeChange (#164).
    • FEAT (Driving & Safety): Crash & fall detection with a cancel-countdown confirmation flow via ImpactConfig + Tracelet.onImpact and Tracelet.confirmImpact / Tracelet.cancelImpact (opt-in, default off) (#165).
    • All three features are default-off and side-channel — no change to existing tracking when disabled. See Driving & Safety.
    Open source →
  52. 3.2.19 13 Jun 2026
    Release notes

    CHORE: version bump for patch release

    Open source →
  53. 3.2.18 12 Jun 2026
    Release notes
    • FIX (Native): ready() / getState() now populate State.config with the active configuration instead of leaving it permanently null (#147).
    • FEAT: Add HttpConfig.syncInterval for interval-based sync — the documented repeating-timer cadence was missing from the Dart config and the Pigeon layer; the native interval timer now flushes the offline queue on this cadence (#149).
    • FIX (Native): destroySyncedLocations() returns the real number of synced-and-pruned locations instead of a hardcoded 0 stub (#154).
    • FEAT: Expose the offline queue with getPendingLocations() and getPendingLocationCount() (#159).
    • FIX (Native): Honor the useKalmanFilter config key so the Extended Kalman Filter is no longer silently disabled by a key mismatch (#148).
    • FIX (Native): Propagate the detected activity (walking / driving / still) into recorded locations — fixes a permanent "activity": "unknown" (#155).
    • FIX (Native): Rebuild the native location processor when ready() applies a new config, so settings such as distanceFilter take effect immediately instead of using stale defaults (#157).
    • FIX (Native): getCount() honors time-bound queries instead of always returning the whole-database total (#152).
    • FIX: Guard the AuditConfig hash-algorithm mapping so configuring sha384 / sha512 no longer crashes with a fatal RangeError during ready() — unsupported variants fall back to sha256 (#150).
    • FIX (Native): The HTTP sync payload now includes each point's motion state is_moving (#151) and its trigger event (location / motionchange / heartbeat / geofence) (#156) — both were previously omitted by the native sync record.
    Open source →
  54. 3.2.17 12 Jun 2026
    Release notes
    • FIX (Native): Resolve iOS auto-sync thread starvation by offloading synchronous HTTP requests to a background DispatchQueue to prevent blocking Swift Concurrency pools (#146).
    • CHORE (Docs): Fix Nextra changelog rendering bug and improve auto-translation glossary script for internationalization.
    Open source →
  55. 3.2.16 12 Jun 2026
    Release notes
    • FIX (Native): Resolve Android/iOS getting stuck in the moving state and never transitioning back to stationary, which kept continuous GPS active and drained the battery. The accelerometer stillness sampler now stays active during the stop-timeout countdown and requires sustained motion — rather than a single noisy or stale sample — to abort it (#142).
    • FIX (Native): Background and post-reboot location captures are persisted (and therefore synced) again. Headless tracking (killed-state relaunch / boot) never calls ready(), so an internal readiness guard silently dropped every captured location before it reached the database, leaving auto-sync with nothing to upload.
    • FIX (Android): The foreground-service notification now reliably appears when the app is backgrounded or terminated with showNotificationOnPauseOnly enabled. The app's own foreground service skewed foreground/background detection (and OS process-importance updates lag), so the pause-only notification was suppressed even though tracking and syncing continued.
    Open source →
  56. 3.2.15 11 Jun 2026
    Release notes
    • FIX (Native): Allow getState() and stop() to be called before ready() is invoked, correctly reporting persistent state and shutting down background services if the app was restarted from a killed state.
    • CHORE: Update dependencies and constraints.
    • FIX: Resolve MissingPluginException and test timing issues with setHasCustomSyncBodyBuilder.
    Open source →
  57. 3.2.14 11 Jun 2026
    Release notes
    • FIX(sync): keep method channel alive to avoid iOS timeout bugs when no builder is registered. (9a083478)
    • FIX(sync): resolve issue 134 where custom sync body timeouts prevented background syncs. (7fa16fdf)
    • FIX(sync): fix background auto-sync abortion when no custom builder is registered (Issue #134). (631542a1)
    • DOCS: add official documentation URL to all package READMEs. (9eb6951e)
    • DOCS: integrate nextra website and update pubspec URLs. (99b7fda8)
    Open source →
    Release notes
    • DOCS: add official documentation URL to all package READMEs. (9eb6951e)
    • DOCS: integrate nextra website and update pubspec URLs. (99b7fda8)
    Open source →
  58. 3.2.13 10 Jun 2026
    Release notes
    • CHORE: Version bump to 3.2.13 to stay in lockstep with the federated set (Android startOnBoot reboot-tracking fix — see tracelet_android). No changes to this package.
    Open source →
  59. 3.2.12 10 Jun 2026
    Release notes
    • CHORE: Re-release to align the full federated package set and native SDKs to a single consistent version. The 3.2.11 release published with mismatched versions across some packages (a few resolved to 3.2.10). No functional code changes.
    Open source →
  60. 3.2.11 09 Jun 2026
    Release notes
    • CHORE: Version bump to align with 3.2.11 platform release.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive