PackageTrack
Sign in Get early access

genui

Generates and displays generative user interfaces (GenUI) in Flutter using AI.

0.10.2 26K downloads/mo #1953 most downloaded on pub.dev flutter/genui

What this package is like to depend on

Last release 12 days ago

12 Aug 2026

Ships on a steady schedule

a new release about every 5 weeks

Nearly every release is documented

notes for 11 of 11 stable releases

Nothing withdrawn

no release was ever pulled

9 months old

11 releases · first in 2025

11 releases in the last 12 months

see the full history below

Release timeline

11 releases · Nov 2025 to Aug 2026
2026
Release Pre-release

Releases

latest 11
  1. 0.10.2 12 Aug 2026
    Release notes
    • Fixed A2uiTransportAdapter.incomingText trimming every streamed chunk, which made words run together when chunks were concatenated.

    • Added examples of how to use TextField.

    • Fixed TextField variants: longText now grows to fit multiple lines, number now rejects non-numeric input, and the obscured example now sets variant so that it is actually obscured.

    • TextField.validationRegexp is now enforced: the value has to match the pattern in full, an empty field is exempt, and a value that does not match shows an error and blocks onSubmittedAction. It was previously accepted and ignored.

    Open source →
  2. 0.10.1 20 Jul 2026
    Release notes
    • Depend on a2ui_core 0.1.0, its first non-pre-release version.
    Open source →
  3. 0.10.0 16 Jul 2026
    Release notes
    • BREAKING: Changed SurfaceDefinition.validate to be asynchronous to support resolving $ref schemas via SchemaRegistry.
    • Refactor: genui now runs on package:a2ui_core. See the migration guide.
    • BREAKING: A2UI message types are now package:a2ui_core types. The GenUI message classes (A2uiMessage, CreateSurface, UpdateComponents, UpdateDataModel, DeleteSurface) are removed; SurfaceController.handleMessage and Transport.incomingMessages take a2ui_core messages, and UpdateComponentsMessage carries raw component JSON maps rather than Component objects. Depend on a2ui_core directly.
    • BREAKING: SurfaceController.store and DataModelStore are removed. Read a surface's data model via SurfaceController.contextFor(id).dataModel.
    • BREAKING: SurfaceRegistry.updateSurface(...) is removed; drive surfaces through SurfaceController.handleMessage.
    • BREAKING: Changed PromptBuilder.chat and PromptBuilder.custom from synchronous factory constructors to asynchronous static methods (createChat and createCustom) to support asynchronous asset loading.
    • BREAKING: Changed _loadSchemas return type to a named record structure.
    • BREAKING: Restricted public API surface of low-level primitives exports. Only CancellationException, CancellationSignal, JsonMap, basicCatalogId, configureLogging, genUiLogger, and generateId are now exported from package:genui/genui.dart.
    • Behavior: DataModel writes are stricter; some writes that previously did nothing now throw, and sparse list writes fill skipped entries with null.
    • Behavior: A duplicate createSurface for an already-active surface id is now an error.
    • The catalog-widget authoring API is unchanged; SurfaceDefinition and Component remain genui types.
    • Refactor: Extracted exception mapping logic to a private helper _errorToMap in SurfaceController.
    • Refactor: Centralized and shared common schema registry initialization helper.
    • Refactor: Extracted mock binary messenger asset setup to a shared helper for test reuse.
    • Fix: Sanitized raw error messages exposed from ArgumentError in Button press handlers.
    • Docs Removed google_generative_ai from the README.md.
    Open source →
  4. 0.9.2 04 Jun 2026
    Release notes
    • Feature: Updated example/README.md.
    Open source →
  5. 0.9.0 27 Apr 2026
    Release notes
    • BREAKING: Reorganized library exports (#866).
    • Feature: Add two skills to the genui package (#800).
    • Feature: Create Dart replicas for Flutter's notifiers (#850).
    • Feature: Add FlutterListenable adapter (#860).
    • Fix: Improvements to prompt builder to prevent misleading LLM (#841).
    • Fix: Match A2uiMessage.a2uiMessageSchema to A2UI v0.9 specification (#833).
    • Fix: Bug fixes for A2UI JSONL stream parser (#868).
    Open source →
  6. 0.8.0 01 Apr 2026
    Release notes
    • Fix tests

    • Update packages/genui/lib/src/engine/surface_controller.dart

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    • Update packages/genui/lib/src/facade/prompt_builder.dart

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    • Add comment, test turn counts

    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

    Open source →
    Release notes
    • BREAKING: Updated package to align with A2UI v0.9 protocol and introduced extensive architectural changes.
    • BREAKING: Updated minimum Dart SDK constraints to ^3.10.0 to leverage modern Dart 3+ syntax and features (#772).
    • BREAKING: DataModel is now an abstract interface class. InMemoryDataModel provides the concrete implementation.
    • BREAKING: Enforce non-null DataPath in DataModel.update, subscribe, and getValue operations (#743).
    • BREAKING: DataContext.evaluate renamed to resolve, returning Stream<Object?>.
    • BREAKING: Made client functions reactive and catalog-based. SimpleClientFunction renamed to SynchronousClientFunction and its call method to executeSync.
    • BREAKING: Removed global FunctionRegistry. Functions are now registered to the catalog. Renamed registerStandardFunctions to registerBasicFunctions.
    • BREAKING: Removed SurfaceCleanupStrategy from SurfaceController.
    • BREAKING: SurfaceContext and SurfaceDefinition now require a non-nullable catalogId.
    • BREAKING: Renamed CoreCatalog to BasicCatalog and relocated catalog widgets.
    • Feature: Added examples app with a gallery of pre-designed surfaces allowing editing/previewing A2UI JSON (#761).
    • Feature: Implemented audio and video basic catalog components (#802).
    • Feature: Added client capabilities JSON generation via A2UiClientCapabilities.fromCatalogs (#773).
    • Feature: Initial implementation of prompt builder via PromptBuilder and the Conversation facade (#777).
    • Feature: Consolidated component name into CatalogItem constructor (#757).
    • Feature: Added descriptions to basic component schemas for standard validation (#756).
    • Fix: Filter whitespace-only AI text responses from transport (#759).
    • Fix: Resolved DataModel double-dispose crashing issue (#741).
    • Fix: Fixed memory leaks in RefCountedValueNotifier and refactored catalog widgets to use lifecycle-safe BoundValue / BoundString widgets.
    • Refactor: Decoupled ClientFunction from DataContext and resolved package cycles (#742).
    • Refactor: Updated Modal component to self-contain showing logic.
    • Internal: Removed legacy events ToolStartEvent, ToolEndEvent, TokenUsageEvent, and ThinkingEvent from the core genui package.
    Open source →
  7. 0.7.0 07 Feb 2026
    Release notes

    Update changelogs and pubspecs. (#699)

    Open source →
    Release notes
    • Fix: Improved error handling for catalog example loading to include context about the invalid item (#653).
    • BREAKING: Renamed ChatMessageWidget to ChatMessageView and InternalMessageWidget to InternalMessageView (#661).
    • Fix: Pass the correct catalogId in DebugCatalogView widget (#676).
    • BREAKING: Renamed most classes with GenUi prefix to remove the prefix or use Surface.
      • GenUiConversation -> Conversation
      • GenUiController -> SurfaceController
      • GenUiSurface -> Surface
      • GenUiHost -> SurfaceHost
      • GenUiContext -> SurfaceContext
      • GenUiTransport -> Transport
      • GenUiPromptFragments -> PromptFragments
      • GenUiFunctionDeclaration -> ClientFunction
      • GenUiFallback -> FallbackWidget
      • configureGenUiLogging -> configureLogging
    • Added some dart documentation and an example directory to improve package:genui pub score.
    • Fix: Make ContentGeneratorError be an Exception (#660).
    • Feature: Define genui parts as extensions of genai_primitives (#675).
    • Internal: Enable stricter dynamic-related analysis (#652).
    Open source →
  8. 0.6.1 05 Jan 2026
    Release notes
    • Fix: Corrected DateTimeInput catalog item JSON key mapping (#622).
    • Fix: Added missing weight property to Component constructor (#603).
    • Fix: Defaulted TextField width to 1 when nested in a Row (#603).
    Open source →
  9. 0.6.0 16 Dec 2025
    Release notes
    • BREAKING: Renamed GenUiManager to A2uiMessageProcessor to better reflect its role.
    • BREAKING: A2uiMessageProcessor now accepts an Iterable<Catalog> via catalogs instead of a single catalog.
    • BREAKING: Removed GenUiConfiguration and ActionsConfig.
    • BREAKING: Removed GenUiHost.catalog in favor of GenUiHost.catalogs.
    • Improved surface rendering logic to cache components before rendering.
    • Updated README sample code to reflect current FirebaseAiContentGenerator API (added catalog parameter and replaced tools with additionalTools).
    • Feature: GenUiManager now supports multiple catalogs by accepting an Iterable<Catalog> in its constructor.
    • Feature: A2uiMessageProcessor now supports multiple catalogs by accepting an Iterable<Catalog> in its constructor.
    • Feature: catalogId property added to UiDefinition to specify which catalog a UI surface should use.
    • Refactor: Moved standardCatalogId constant from basic_catalog.dart to primitives/constants.dart for better organization and accessibility.
    • Fix: MultipleChoice widget now correctly handles maxAllowedSelections when provided as a double in JSON, preventing type cast errors.
    • Fix: The Text catalog item now respects the ambient DefaultTextStyle, resolving contrast issues where, for example, text inside a dark purple primary Button would be black instead of white.
    Open source →
  10. 0.5.1 12 Nov 2025
    Release notes
    • Homepage URL was updated.
    • Deprecated flutter_markdown package was replaced with flutter_markdown_plus.
    Open source →
  11. 0.5.0 12 Nov 2025
    Release notes
    • Initial published 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