Develop - #35
Merged
Merged
Conversation
Make route<T>() subtype-aware and unwrap nested EnrichedEvent values only for type matching while retaining transformed properties for other rules. Align routing debug explanations and add regression coverage.\n\nCloses #17
Replace clock-modulo routing decisions with injectable FNV-1a sampling keyed by user, session, or event name. Add UTF-8 conformance vectors, essential-event bypass, regression coverage, and public documentation. Closes #18
- add immutable UUID event IDs and UTC timestamps - preserve event metadata during enrichment - default new clients to denied consent - align package version metadata and documentation
Changes: - Added the versioned, language-neutral Core 1.0.0 specification. - Defined event, enrichment, tracker, routing, consent, sampling, lifecycle, and debug contracts. - Documented the exact processing and routing evaluation order. - Added worked examples and compatibility/versioning rules. - Explicitly excluded offline queues, persistence, retries, sessions, identity management, and optimized batching from the MVP. - Added a contract test to protect the required specification sections. - Linked the specification from the project documentation. Validation: - All 832 tests pass. - `flutter analyze` passes with no issues. - `git diff --check` passes.
- add versioned JSON schema and deterministic MVP cases - cover routing, consent, sampling, enrichment, and debug behavior - add the Flutter conformance runner and machine-readable report - document the Kotlin runner contract - validate conformance fixtures in CI
- bump the package and exported versions to 2.1.0 - finalize the 2.1.0 changelog - update README installation instructions - adopt the standard doc directory layout - exclude development-only files from the published package
* feat: introduce event queue system with in-memory and file-based implementations - Added `EventQueue` interface and `InMemoryEventQueue` for in-memory event handling. - Implemented `FileEventQueue` for durable event storage using file system. - Created `QueuedEvent` and `QueuedEventSnapshot` for event representation and serialization. - Enhanced `FlexTrackClient` and `FlexTrack` to support event queue integration. - Introduced `DisposableTrackerStrategy` for trackers managing disposable resources. - Updated `TrackerRegistry` and `TrackerStrategy` to handle initialization and disposal correctly. - Added comprehensive tests for event delivery, queue operations, and tracker lifecycle management. - Updated pubspec version to 2.2.0. * feat: Enhance offline delivery tracking and inspector features - Added a pre-action script to the Xcode scheme for preparing the Flutter framework. - Updated workspace to include Pods project reference. - Updated pubspec.lock with new dependencies: args, code_assets, hooks, jni, jni_flutter, jni_util, logging, objective_c, package_config, path_provider, path_provider_android, path_provider_foundation, pub_semver, record_use, yaml. - Modified pubspec.yaml to include path_provider dependency. - Implemented unit tests for offline delivery screen functionality. - Updated generated_plugins.cmake to include jni plugin. - Enhanced EventDispatchRecord to track queued events and queue size. - Improved FlexTrackClient to notify debug state and handle event processing results. - Updated inspector dashboard to visualize offline queue status. - Enhanced inspector server to provide queue size in status payload. - Updated inspector event buffer to include queued tracker IDs and queue size in records. - Added tests for inspector event buffer to validate offline queue fields. * feat: Implement offline flush behavior to prevent delivery when offline
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release
Prepares FlexTrack
2.2.0for production release.Highlights
Compatibility
This release is backward-compatible. Existing integrations do not require code changes.
Persistent offline delivery is opt-in by providing a
FileEventQueueor a customEventQueue. Without an injected queue, FlexTrack continues to use the in-memory implementation.Verification