syzygy_foundation_flutter 1.2.0
syzygy_foundation_flutter: ^1.2.0 copied to clipboard
Foundational contracts, primitives, and shared types for the Syzygy Flutter ecosystem
Changelog #
All notable changes to syzygy-foundation-flutter are documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
1.2.0 - 2026-09-18 #
1.1.0 — 2026-09-03 #
Changed #
- Ecosystem repositioned as AI-enabled cross-platform engineering framework for mobile, web and enterprise
- CI workflow refactored — inline release job removed, release now handled by org-level tag-push workflow
- Lint configuration migrated to
Syzygy-Hub/.github/engineering/tooling/ - Lint step reordered to run before build and test
- README updated with ecosystem architecture, shared contracts documentation, and release process
Added #
syzygy.ymlconfirmed as canonical version source of truth- Shared contracts section documenting
NetworkClientProtocol,AuthProvider,StorageProvider,LoggerProtocol
1.0.0 - 2026-08-06 #
Added #
Primitives
SyzygyID<T>— generic typed identifier wrapping a UUID string; value equality;generate()factorySyzygyPage<T>— paginated result wrapper withhasNextPage,hasPreviousPage,isEmpty,totalPagesPaginationRequest— page number, page size, optional cursor; defaults to page 1, size 20SyzygyTimestamp— immutable millisecond-precision Unix-epoch instant;Comparable;toDateTime();now()factorySyzygyDuration— immutable millisecond-precision duration;.fromSeconds,.fromMinutes,.fromHoursfactoriesTimeProvider— abstract class for injectable clock abstractionValidationResult—Valid/Invalid(messages)sealed class;isValidcomputed property;ValidationResultXextensionValidationRule<T>— abstract single-method validation contract
Contracts — Network
NetworkMethod—get,post,put,patch,delete,headenumNetworkRequest— outgoing request value type;Uint8ListbodyNetworkResponse— incoming response value type;isSuccess,isClientError,isServerErrorNetworkClientProtocol— abstractFuture<NetworkResponse> execute(NetworkRequest)method
Contracts — Storage
StorageKey<T>— typed key withidentifierand optionaldefaultValueStorageProvider— abstractget/set/remove/clearwith serializer/deserializer callbacks
Contracts — Auth
AuthToken— access token, optional refresh token, optional expiry;isExpiredcomputed propertyAuthState— sealed class:Unauthenticated,Authenticated,AuthExpired,Refreshing;AuthStateXextensionAuthProvider—Stream<AuthState>+authenticate,refresh,signOutabstract methods
Contracts — Analytics
AnalyticsEvent— named event withMap<String, Object?>properties and timestampAnalyticsProvider— abstracttrack,identify,resetcontract
Contracts — Logging
LogLevel—debug,info,warning,error,criticalenumLogEntry— structured entry with level, message, timestamp,Map<String, String>metadata, optionalExceptionLoggerProtocol— abstractlog(entry)+debug,info,warning,error,criticalconvenience methods
Contracts — Connectivity
ConnectivityState—connected,disconnected,unknownsealed class withisConnectedConnectivityProvider— abstractStream<ConnectivityState>+isConnectedsnapshot
Shared Types
SyzygyEnvironment—debug,staging,productionsealed class;isDebug,isProductionSyzygyConfiguration— abstract top-level app configurationSyzygyBuildInfo— consumer-injected app metadata (name, bundle ID, build number, version)SyzygyVersion— semantic version value type;Comparable;SyzygyVersion.current=1.0.0
Errors
SyzygyErrorSeverity—info,warning,error,criticalenumSyzygyErrorCode— typed error code; predefined:unknown,cancelled,timeout,unauthenticated,forbidden,notFound,serverError,networkUnavailable,decodingFailed,encodingFailedSyzygyError— abstract class implementingException;code,message,severity,underlyingError
Testing (syzygy_foundation_flutter_testing.dart — dev_dependencies only)
MockLogger— recordsLogEntryinstances; filterable byLogLevel;clear()MockConnectivityProvider—StreamController-backed;setState()for test controlMockAuthProvider— tracksrefreshCallCount,signOutCallCount; configurablerefreshResultMockStorageProvider— in-memory map; accessible for direct assertionsMockNetworkClient— FIFO response queue;requestslist; configurableerrorSpyAnalyticsProvider— recordstrackedEvents,identifiedUsers,resetCallCount;eventsNamedfilterFixtureProvider<T>— abstract fixture factory protocolFixedTimeProvider— deterministicTimeProviderwith mutablefixedTime
Repository
syzygy.ymlmanifest added
Changed #
- CI lint step now fetches
analysis_options.yamlfromSyzygy-Hub/.github/main/engineering/tooling/flutter/ - CI coverage step added:
flutter test --coverage+ lcov line coverage summary written toGITHUB_STEP_SUMMARY - README rewritten to Syzygy engineering standard