Skip to content

Develop - #33

Merged
alirezat66 merged 7 commits into
mainfrom
develop
Aug 17, 2026
Merged

Develop#33
alirezat66 merged 7 commits into
mainfrom
develop

Conversation

@alirezat66

@alirezat66 alirezat66 commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

Release FlexTrack Flutter 2.1.0.

This release stabilizes the Flutter SDK before starting the Kotlin implementation and establishes a shared cross-platform behavioral contract.

Highlights

  • Added immutable UUID event identifiers and UTC occurrence timestamps.
  • Preserved event identity and timestamp through enrichment.
  • Replaced clock-based sampling with deterministic FNV-1a sampling.
  • Fixed routing identity and same-priority rule behavior.
  • Changed initial general and PII consent to privacy-safe defaults.
  • Added the versioned FlexTrack Core MVP specification.
  • Added shared Flutter/Kotlin conformance fixtures and a Flutter runner.
  • Added machine-readable conformance reporting and CI validation.
  • Updated package documentation and release metadata.
  • Cleaned the pub.dev package contents with .pubignore.

Compatibility notes

Most users do not need to change their event implementations.

Users may need to:

  • Set consent explicitly before tracking non-essential events.
  • Remove const from event constructors because event IDs and timestamps are generated at runtime.
FlexTrack.setConsent(
  general: true,
  pii: true,
);

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
@alirezat66
alirezat66 merged commit 78d7f46 into main Aug 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant