air_state
A lightweight, modular state management library for the Air Framework.
1.0.7
AndreyDAraya/air-state
What this package is like to depend on
Last release 4 months ago
11 Apr 2026
Ships on a steady schedule
a new release about every 5 weeks
Nearly every release is documented
notes for 8 of 8 stable releases
Nothing withdrawn
no release was ever pulled
6 months old
8 releases · first in 2026
8 releases in the last 12 months
see the full history below
Release timeline
8 releases · Feb 2026 to Apr 2026Releases
latest 8-
1.0.711 Apr 2026Release notes
Open source →Architecture Improvements
- Strong Type Retention in AirListener: Improved the generic type resolution mechanism when iterating over
List<AirStateKey>. Controller resolution now utilizes dynamic dispatch directly on theAirStateKey<T>instance, guaranteeing the preservation of the explicit generic typeTand ensuring strictly typed state initialization.
- Strong Type Retention in AirListener: Improved the generic type resolution mechanism when iterating over
-
1.0.611 Apr 2026Release notes
Open source →Improvements
- AirPulse Callable Shorthand:
AirPulse<T>is now a callable class. UseAuthPulses.clearMessages(null)instead ofAuthPulses.clearMessages.pulse(null). The explicit.pulse()method remains available for backward compatibility.
- AirPulse Callable Shorthand:
-
1.0.511 Apr 2026Release notes
Open source →Improvements
- AirListener: Introduced the
AirListenerwidget for handling one-off side effects (navigation, SnackBars) reactively without triggering UI rebuilds. This component promotes better separation of concerns and keeps the widgetbuildmethods pure.
- AirListener: Introduced the
-
1.0.410 Apr 2026Release notes
Open source →Bug Fixes
- Fixed silent data loss in
StatePersistence._serialize(): Custom model objects withtoJson()ortoMap()methods now serialize correctly. Previously, the existence checkobj.toJson != nullalways threwNoSuchMethodError(swallowed by a catch), causing all custom models to fall back to.toString()— making restore impossible. Now callstoJson()/toMap()directly inside a try-catch. - Fixed subscription leaks in
AirState.dispose(): Simplified the disposal logic to a singletry { (sub as dynamic).cancel() } catch (_) {}block. The previous implementation had unreachable branches and silently swallowed cancellation errors, leaving subscriptions alive after dispose. - Removed unused
dart:asyncimport fromair_state_base.dart.
- Fixed silent data loss in
-
1.0.303 Mar 2026Release notes
Open source →- Visual Identity: Added the official Air Framework SVG logo.
- Documentation: Updated README with the new logo and visual assets.
-
1.0.209 Feb 2026Release notes
Open source →- Security & Access Control:
- Added
canAccessmethod toAirDelegateto validate state access permissions. - Updated
AirBuilderto check for access permissions before building. - Added
sourceIdtracking toAirDelegate.subscribeandAirStateevent listeners.
- Added
- API Improvements:
AirBuilder,AirBuilder2, andAirBuilder3now acceptcallerModuleIdfor better dependency tracking.- Updated
AirDelegateinterface signature
- Security & Access Control:
-
1.0.104 Feb 2026 -
1.0.004 Feb 2026Release notes
Open source →- Initial release of
air_state. - Core reactive state management (
AirController,Air). - Typed state keys support (
AirStateKey). - Widget builders (
AirBuilder,AirView). - Helper extensions for Tuples.
- Initial release of