Skip to content
CAI
Software that uses CAICheck a score

flutter/genui

71.1

Strong · 19 September 2026

28k

lines of production code

Dart

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a Flutter-based framework for building generative AI applications that render dynamic, interactive user interfaces using the A2UI specification. It provides core libraries for managing AI conversation primitives, validating JSON schemas, and handling agent-to-agent communication, alongside a surface engine that translates AI-generated UI definitions into native Flutter widgets. The repository also includes developer tools for browsing and testing UI components, as well as example applications demonstrating conversational and workflow-driven AI interactions.

How it got here

2025 — A2UI v0.9 migration and example expansion

40 changes.

The project migrated the GenUI core to the A2UI v0.9 specification, introducing synchronous schema validation and reactive client functions while removing the legacy dynamic UI generation client. This period also saw the introduction of the genai\_primitives library and the expansion of example applications, specifically adding full multi-platform support for simple\_chat and the new Verdure landscape design app.

2026 — GenUI A2UI Core Migration and Tooling

26 changes.

The GenUI framework was refactored to migrate its state management, transport, and interface layers to the a2ui\_core specification, introducing structured message parts and a SurfaceController-based engine. This period also saw the expansion of the basic UI catalog with new widgets and functions, alongside the development of developer tools like the GenUI Composer and Catalog Gallery. Comprehensive testing and integration examples were added to validate the new architecture and agent communication capabilities.

Features

Add Verdure example app navigation and loading UI components

The Verdure example application now includes core UI widgets for navigation and user feedback. The new \AppNavigator\ widget integrates with GoRouter to handle deep-linking and surface-based navigation (such as details, questionnaire, and cart screens) by listening to the AI provider's state stream. Additionally, a \GlobalProgressIndicator\ widget has been added to overlay a loading state across the app, displaying rotating status messages while AI processing or general loading operations are in progress.

examples/verdure/client/lib/features/widgets · high confidence

Add Verdure example app screens

The Verdure example application now includes a set of new screens to guide users through a landscape design workflow. These include a Welcome screen for starting new projects, an Upload Photo screen for submitting yard images, a Questionnaire screen for collecting user details, a Presentation screen for viewing custom designs, a Shopping Cart screen, and an Order Confirmation screen. These screens integrate with the AI provider to render dynamic surfaces and handle user interactions.

examples/verdure/client/lib/features/screens · high confidence

Add Verdure example client

Adds the Verdure example Flutter application, providing a complete client implementation with a multi-screen navigation flow (welcome, photo upload, questionnaire, presentation, shopping cart, and order confirmation). The client includes a custom light and dark theme using the SpaceGrotesk font, Riverpod for state management, and GoRouter for navigation. It is configured for Android, iOS, and Linux platforms, with platform-specific setup files, assets, and native code included.

_examples/simple\chat/macos/Runner, examples/verdure/client · high confidence

Add Verdure landscape design example with A2UI support

Introduces the Verdure example server, a landscape design agent that supports both text-only and rich A2UI (Agent-to-Agent UI) interactions. The server registers an A2UI extension to activate dynamic UI surfaces, implements an agent executor that routes requests to either a text or UI agent based on client capabilities, and includes a JSON schema validator to ensure LLM-generated UI responses conform to the A2UI v0.9 specification. The example demonstrates a multi-step design flow including welcome screens, photo uploads, dynamic questionnaires, option selection, and checkout, all driven by A2UI component updates and data model changes.

examples/verdure/server/verdure · high confidence

Add iOS configuration for the simple\_chat example

The simple\_chat example now includes the necessary iOS project files, allowing it to be built and run on iOS devices and simulators. This adds the Xcode project structure, CocoaPods workspace configuration, and standard iOS assets (such as app icons and launch screens). The app bundle is configured with the display name "Simple Chat" and the minimum supported iOS version is set to 15.0.

_examples/simple\chat/ios · high confidence

Add simple\_chat example demonstrating GenUI conversational UI

Introduces a new 'simple\_chat' example application that demonstrates how to use the GenUI package to build a conversational chat interface. The example showcases initializing a SurfaceController, sending user messages to an AI client, and rendering dynamic UI surfaces generated by the AI within a standard chat message list, relying on the default coreCatalog for basic widgets.

_examples/simple\chat · high confidence

Added GenAI Primitives example demonstrating tool use and data parts

The example application for the genai\_primitives package has been added, providing a concrete demonstration of how to define tools with input schemas, manage conversation history, and handle model responses that include tool calls and data attachments (such as images). This entry point illustrates the library's core capabilities for building AI-driven applications that interact with external tools and process multimodal data.

_packages/genai\primitives/example · high confidence

Added macOS Flutter build configuration and plugin registration for the simple\_chat example

The simple\_chat example now includes the necessary macOS Flutter infrastructure, specifically the debug and release Xcode configuration files and the generated plugin registrant. This setup enables the example to run on macOS by automatically registering the audioplayers, url\_launcher, and video\_player plugins, allowing users to test audio, video, and URL launching capabilities on the desktop platform.

_examples/simple\chat/macos/Flutter · high confidence

Added macOS workspace configuration for the simple\_chat example

The simple\_chat example now includes the necessary macOS workspace files (contents.xcworkspacedata and IDEWorkspaceChecks.plist). This ensures that the Xcode workspace correctly references the main project and CocoaPods dependencies, allowing the example to be opened and built properly in Xcode without manual configuration.

_examples/simple\chat/macos/Runner.xcworkspace · high confidence

The Catalog Gallery developer tool now supports web targets, allowing users to browse and interactively test basic catalog widgets and A2UI samples directly in a browser. This is achieved by bundling sample files as app assets and introducing a platform-agnostic \SampleSource\ abstraction (\AssetSampleSource\ vs \DirectorySampleSource\) that loads samples from the Flutter asset bundle on web while retaining filesystem-based loading for desktop/mobile overrides. The app includes a new 'Samples' tab for rendering these \.sample\ files and is accompanied by integration tests to verify sample rendering.

_dev\_tools/catalog\gallery · high confidence

Introduce A2A client library for Agent-to-Agent communication

The \genui\_a2a\ package now provides a client for interacting with A2A (Agent-to-Agent) servers, implementing the JSON-RPC 2.0 protocol. This includes an \A2AClient\ that supports both single-shot HTTP requests and real-time streaming via Server-Sent Events (SSE), with automatic transport selection based on agent capabilities. The library exposes core data models such as \AgentCard\, \AgentCapabilities\, and \AgentSkill\ for discovery and interaction, along with a comprehensive error handling hierarchy (\A2AException\) and a handler pipeline for request/response interception.

_packages/genui\a2a/lib · high confidence

Introduce AI agent integration with A2UI protocol support

The Verdure example app now includes a new AI feature that connects to an A2A server using the A2UI protocol. This change adds an \AiClientState\ provider that manages the connection lifecycle, including an \A2uiAgentConnector\ for sending and receiving messages, and a \SurfaceController\ for rendering UI surfaces. It also introduces a \LoadingState\ singleton to manage processing indicators and display randomized loading messages to the user while the AI agent is handling requests.

examples/verdure/client/lib/features/ai · high confidence

Introduce Conversation and PromptBuilder facades for GenUI

This change adds two new facade classes to the \genui\ package: \Conversation\, which orchestrates the lifecycle of UI surfaces and manages state (such as waiting for AI responses and handling errors) by bridging the \SurfaceController\ and \Transport\ layers, and \PromptBuilder\, which generates structured system prompts for LLMs to generate UI. The \PromptBuilder\ includes pre-defined fragments for acknowledging user messages, requiring submit elements, and restricting tool usage, and supports both chat-specific and custom operation modes via a provided \Catalog\.

packages/genui/lib/src/facade · high confidence

Introduce GenUI Composer desktop app for A2UI surface generation

Adds a new Flutter desktop application, \dev\_tools/composer\, that enables users to generate and edit A2UI surfaces. The app features a Create tab for describing UIs in plain text to have Gemini generate A2UI surfaces, a Gallery tab for browsing and previewing pre-built sample surfaces, and a Components tab for viewing the built-in catalog. It also includes a Surface Editor for live-previewing and editing A2UI JSONL and data models, requiring a Gemini API key for the generation feature.

_dev\tools/composer · high confidence

Introduce \`test\_and\_fix\` tool with coverage enforcement and workspace validation

The \tool/test\_and\_fix\ directory now contains a new Dart command-line tool that replaces the previous shell script for running tests and fixes across the monorepo. This tool adds parallel execution for \dart fix\, \dart format\, and \dart analyze\, and introduces new capabilities for enforcing test coverage thresholds and preventing regression via a configurable baseline file. It also includes a \WorkspaceVerifier\ that validates internal dependency version constraints to prevent silent fallbacks to \pub.dev\. The tool supports flags like \--all\ to include skipped projects and \--coverage\ to run coverage checks.

_tool/test\_and\fix · high confidence

Introduce core GenAI primitives: ChatMessage, FinishStatus, and ToolDefinition

This change introduces the foundational data models for the \genai\_primitives\ library. It adds \ChatMessage\ to represent conversation turns with support for roles (system, user, model), content parts, metadata, and new capabilities to concatenate messages and access tool calls/results. It also introduces \FinishStatus\ to track response completion states (completed, interrupted, not finished) and \ToolDefinition\ to define LLM-callable tools with JSON Schema-based input validation. These types provide the structured primitives needed to build and manage generative AI interactions.

_packages/genai\primitives/lib/src · high confidence

Introduce genai\_primitives library for generative AI primitives

The new genai\_primitives library provides a set of core primitives for working with generative AI, exposing chat messages, tool definitions, and a structured part system (including model-specific parts, standard parts, and general parts) through a single entry point.

_packages/genai\primitives/lib · high confidence

Introduce structured UI and interaction part types

The model layer now defines specific part types for UI definitions and interactions, replacing generic data handling with typed views. Users can now create and parse UI parts containing surface definitions and interaction parts containing interaction data via dedicated \UiPart\ and \UiInteractionPart\ classes, which are accessible through new extension methods on standard parts.

packages/genui/lib/src/model/parts · high confidence

Introduce structured message content parts and serialization

The \genai\_primitives\ package now provides a structured model for AI message content, replacing ad-hoc handling with a typed class hierarchy. Users can now work with specific part types—TextPart, DataPart, LinkPart, ToolPart, and ThinkingPart—each supporting robust JSON serialization and deserialization via a configurable converter registry. The new \Parts\ collection class simplifies managing multiple content pieces, offering convenient accessors to extract concatenated text, tool calls, or tool results from a message. This change enables more reliable parsing and generation of complex multimodal interactions.

_packages/genai\primitives/lib/src/parts · high confidence

Introduce synchronous schema validation

The \json\_schema\_builder\ package now supports synchronous validation via the new \Schema.validateSync\ method, allowing users to validate data without awaiting a Future when all schema references are already resolved. This change also introduces \SchemaRegistry.resolveSync\ and \prefetchDependencies\ to manage reference resolution and fetching separately, and exports \SchemaResolutionRequiredException\ to handle cases where a reference cannot be resolved synchronously. The existing asynchronous \validate\ method remains unchanged, acting as a wrapper that fetches remote references in parallel before validation.

_packages/json\_schema\builder · high confidence

Introduces primitives for climbing location catalog and agent integration

The simple chat example now includes a new climbing location catalog feature. This adds a \ClimbingLocation\ widget and a gallery view to display location details, along with the underlying data models and enums for climbing types and experience levels. The chat agent has been updated to use the \dartantic\_ai\ library with a Google Gemini backend and includes a \listClimbingLocations\ tool, allowing the AI to retrieve and present catalog items. API key handling for the Google backend is now platform-aware, supporting both web and IO environments.

_examples/simple\chat/lib/primitives · high confidence

Introduction of basic UI catalog and client-side functions

The \genui\ library now includes a \BasicCatalog\ containing standard UI components (such as buttons, text fields, images, and layout containers) and a set of \BasicFunctions\ (including logical operators, string formatting, and validation helpers). This allows applications to build interactive interfaces using a predefined set of catalog items and client-side logic without needing to define custom widgets or functions from scratch.

packages/genui/lib/src/catalog · high confidence

Introduction of new basic catalog widgets

The basic catalog now includes a comprehensive set of new UI components, including AudioPlayer, Button, Card, CheckBox, ChoicePicker, Column, DateTimeInput, Divider, Icon, Image, List, and Modal. These additions expand the framework's capabilities, allowing users to build interfaces with media playback, interactive forms, structured layouts, and overlay dialogs.

_packages/genui/lib/src/catalog/basic\_catalog\widgets · high confidence

Linux build support added to simple\_chat example

The simple\_chat example now includes the necessary Linux native files (CMakeLists.txt, runner sources, and Flutter plugin registrants) to build and run on Linux. This enables users to compile the application for the Linux desktop platform, with the window title updated to 'simple\_chat' and plugins like audioplayers and url\_launcher registered for native use.

_examples/simple\chat/linux · high confidence

New CLI validator and comprehensive usage examples for json\_schema\_builder

The \json\_schema\_builder\ package now includes a command-line tool (\schema\_validator.dart\) that allows users to validate JSON files against a specified schema directly from the terminal. Additionally, a new example (\build\_and\_validate\_schema.dart\) demonstrates how to programmatically construct complex schemas—featuring nested objects, list constraints, regex patterns, and \oneOf\ combinators—and validate data against them, providing a practical reference for implementing schema validation in Dart applications.

_packages/json\_schema\_builder/bin, packages/json\_schema\builder/example · high confidence

New JSON Schema builder types for validation

The \json\_schema\_builder\ package now includes dedicated schema classes for all core JSON Schema data types: \BooleanSchema\, \IntegerSchema\, \ListSchema\, \NullSchema\, \NumberSchema\, \ObjectSchema\, and \StringSchema\. These classes provide a structured API for defining schemas with type-specific constraints (such as \minimum\/\maximum\ for numbers, \minItems\/\maxItems\ for lists, and \properties\/\required\ for objects) and include built-in validation logic to report specific errors when data does not meet the defined criteria.

_packages/json\_schema\builder/lib/src/schema · high confidence

A new \fix\_copyright\ tool has been added to the repository to automatically detect and fix non-compliant copyright headers in source files. The tool scans files tracked by \git ls-files\, identifies those with missing, outdated, or incorrect copyright notices (such as 'All Rights Reserved' or wrong years), and can either report them or overwrite them with the standard Flutter copyright header when the \--force\ flag is used. It intelligently skips generated code and preserves file-specific headers like shebangs in shell scripts.

_tool/fix\copyright · high confidence

New developer tooling scripts and GitHub triage automation

This change introduces several new scripts in the \tool/\ directory to streamline development workflows and repository maintenance. It adds \fix\_copyright.sh\ and \jules\_setup.sh\ to handle copyright header updates and environment setup, respectively, alongside \run\_all\_tests\_and\_fixes.sh\ to execute tests and fixes in a single command. Additionally, it includes \triage.mjs\, a new automation script that reconciles the 'status: needs-triage' label on open pull requests, flagging those from external contributors that have been inactive for more than a day to ensure timely review.

tool · high confidence

New development catalog view widget for debugging GenUI components

A new \DebugCatalogView\ widget has been added to the development utilities, allowing developers to visually inspect and debug GenUI components by rendering a catalog of items with their example data. This widget integrates with the \a2ui\_core\ framework to manage surface creation and component updates, providing a dedicated UI for validating component behavior during development.

_packages/genui/lib/src/development\utilities · high confidence

New formatString function for data model interpolation

Users can now use the \formatString\ function to perform string interpolation within the UI, allowing data model values and other client-side functions to be embedded directly into strings using the \${expression}\ syntax. This new capability, implemented in \format\_string.dart\, supports JSON Pointer paths to data model values (e.g., \${/absolute/path}\) and named arguments for other functions (e.g., \${formatDate(value:${/currentDate})}\), enabling dynamic text generation based on application state.

packages/genui/lib/src/functions · high confidence

Windows support added to the simple\_chat example

The simple\_chat example now includes a complete Windows runner, enabling users to build and run the chat application on Windows via CMake and Visual Studio. This addition integrates native Windows plugins for audio playback (audioplayers\_windows), URL launching (url\_launcher\_windows), and video playback (video\_player\_win), ensuring the example can utilize these capabilities on the platform.

_examples/simple\chat/windows · high confidence

Removals

Removal of the dynamic UI generation client package

The \pkgs/genui\_client\ package has been deleted, removing the Flutter application that previously generated and rendered user interfaces from AI definitions. This change eliminates the client-side logic for connecting to an AI backend via WebSocket, parsing JSON UI definitions, and rendering dynamic widgets such as text fields, checkboxes, and buttons.

_pkgs/genui\client · high confidence

Behavioural changes

Archive of frozen A2UI packages

The \a2ui\_core\ and \a2ui\_agent\ packages are now located in the \packages/archive\ directory with development frozen in this repository. These packages have been moved to external locations on pub.dev, and this archive serves as a static record of their final state rather than an active development target.

packages/archive · high confidence

GenUI interfaces migrated to use a2ui\_core state engine and messages

The GenUI interface layer has been refactored to depend on the \a2ui\_core\ package for its state engine and message types. This introduces new abstract interfaces (\A2uiMessageSink\, \SurfaceContext\, \SurfaceHost\, \Transport\) that standardize how the framework handles UI surface management, client-to-AI message transport, and error reporting. Specifically, \Transport\ now exposes streams for both raw text chunks and parsed \A2uiMessage\s, while \SurfaceContext\ and \SurfaceHost\ provide the contract for managing individual UI surface states and updates.

packages/genui/lib/src/interfaces · high confidence

GenUI library exports reorganized onto A2UI core

The \packages/genui/lib/src\ library structure has been reorganized to align with the \package:a2ui\_core\ migration. The public API is now exposed through a set of focused entry points: \catalog.dart\ (basic catalog widgets and functions), \engine.dart\ (surface controller and registry), \facade.dart\ (conversation and prompt-building utilities), \functions.dart\ (string interpolation), \interfaces.dart\ (host application integration points like \SurfaceHost\ and \Transport\), \model.dart\ (A2UI object model and schemas), \primitives.dart\ (low-level utilities), \transport.dart\ (message parsing and streaming adapters), \utils.dart\ (JSON parsing and stream helpers), and \widgets.dart\ (surface display widgets). This change consolidates the framework's surface and messaging capabilities under the A2UI specification.

packages/genui/lib/src · high confidence

GenUI model layer migrated to A2UI v0.9 with reactive client functions and catalog negotiation

The \packages/genui/lib/src/model\ layer has been completely rewritten to align with the A2UI core framework v0.9. This update introduces a new \Catalog\ system that manages UI components and client functions, supporting catalog IDs and aliases for server negotiation via \A2UiClientCapabilities\. Client functions are now reactive, returning streams to push real-time updates to the UI, and are validated against generated JSON schemas. The data model has been refactored to use a \DataContext\ with explicit \DataPath\ resolution, replacing previous binding mechanisms to improve lifecycle safety and prevent memory leaks. Additionally, new models for \SurfaceDefinition\, \UiEvent\, and \GenerationEvent\ provide a structured, immutable snapshot of the UI state and generation process, while \JsonBlockParser\ aids in extracting structured data from LLM responses.

packages/genui/lib/src/model · high confidence

GenUI primitives migrate to A2UI core and v0.9 specification

The GenUI primitives layer has been refactored to depend on the new \package:a2ui\_core\ for state engine and message handling, aligning the framework with the A2UI v0.9 specification. This update introduces a dedicated \A2uiValidationException\ for clearer error reporting during message parsing, adds a \CancellationSignal\ for managing asynchronous operation lifecycles, and embeds the v0.9 \common\_types.json\ schema for type validation. Additionally, canonical catalog identifiers for the basic catalog and common types are now defined, replacing legacy URLs to ensure consistent schema resolution.

packages/genui/lib/src/primitives · high confidence

Introduce FallbackWidget and refactor Surface to use ActionDelegate

The Surface widget now delegates UI event handling to an ActionDelegate (with a new DefaultActionDelegate) instead of handling actions internally, and it utilizes a new FallbackWidget to display standardized error or loading states when a catalog is missing or a widget fails to build. This change improves error resilience by providing consistent visual feedback for rendering issues and decouples action logic from the core Surface implementation.

packages/genui/lib/src/widgets · high confidence

Introduce synchronous schema validation with strict reference resolution

The \json\_schema\_builder\ now supports synchronous validation (\validateSync\), allowing data to be validated against a schema without performing any I/O. To ensure this path is safe and deterministic, the library introduces a \SchemaRegistry\ with a \resolveSync\ method that only resolves references already loaded in memory. If a reference requires fetching a remote schema, the synchronous path throws a \SchemaResolutionRequiredException\ rather than silently passing or blocking. Users must pre-populate the registry using \addSchema\ or \prefetchDependencies\ before calling the synchronous validator. This change also adds a \LoggingContext\ for debugging validation steps and introduces specific exception types (\SchemaFetchException\, \SchemaResolutionRequiredException\) to handle remote schema fetching errors explicitly.

_packages/json\_schema\builder/lib/src · high confidence

Migrate GenUI engine to a2ui\_core state management

The GenUI engine in \packages/genui/lib/src/engine\ has been refactored to migrate its state management and messaging infrastructure from the previous implementation to \package:a2ui\_core\. This change introduces \SurfaceController\ as the new runtime controller, which now wraps \core.MessageProcessor\ to handle AI service messages, manage surface lifecycle events, and perform catalog-schema validation. The \SurfaceRegistry\ has been updated to track live \SurfaceModel\s and emit Flutter-friendly \RegistryEvent\ streams (added, updated, removed) for the widget layer. This migration centralizes the core state logic in \a2ui\_core\, allowing the GenUI engine to focus on Flutter-specific concerns like pending update buffering and client capability generation.

packages/genui/lib/src/engine · high confidence

Migrate transport layer to A2UI Core protocol

The transport layer in \packages/genui\ has been replaced with a new implementation based on \package:a2ui\_core\. This introduces \A2uiTransportAdapter\ and \A2uiParserTransformer\ to handle the A2UI JSONL stream, providing \incomingText\ and \incomingMessages\ streams for consuming LLM outputs and A2UI protocol messages respectively.

packages/genui/lib/src/transport · high confidence

Restructured library exports and added parsing utilities

The public API surface of the \genui\ package has been reorganized to improve clarity and modularity. The main entry point (\genui.dart\) now explicitly exports core components like the engine, facade, and widgets, while hiding internal implementation details such as specific catalog functions and surface events. A new \parsing.dart\ library has been introduced to expose JSON block parsing utilities, and a dedicated \test.dart\ library now provides testing utilities and validation rules, separating test-specific code from the main product API.

packages/genui/lib · high confidence

Simple chat example migrated to A2UI transport and session management

The simple\_chat example has been refactored to use the new A2UI core transport layer and session architecture. The app now uses \SimpleChatA2aTransport\ to communicate with the agent via \A2uiMessage\ streams, replacing the previous direct agent integration. Session logic is centralized in \ChatSession\, which supports three modes (custom catalog, basic catalog, and text-only) and manages message history and surface rendering through \SurfaceController\. The UI in \main.dart\ now listens to the \ChatSession\ for updates and renders messages using \MessageView\, which handles both text and generative UI surfaces.

_examples/simple\chat/lib · high confidence

genui v0.10.3: Canonical catalog ID, pluralization fix, and TextField improvements

This release updates the default \basicCatalogId\ to the canonical A2UI URL and introduces \catalogIdAliases\ in the \Catalog\ model to maintain backward compatibility with legacy URLs. It fixes \PluralizeFunction\ to use \Intl.pluralLogic\, preventing message extraction errors with dynamic runtime expressions. Additionally, \TextField\ behavior is stabilized: \longText\ now supports multi-line growth, \number\ rejects non-numeric input, \validationRegexp\ is strictly enforced, and the \obscured\ variant correctly hides text. The \A2uiTransportAdapter\ also fixes a bug where streamed chunks were incorrectly trimmed, preventing words from running together.

packages/genui · high confidence

genui\_a2a 0.10.1 release and migration to a2ui\_core

The \genui\_a2a\ package has been updated to version 0.10.1, which depends on the newly released \a2ui\_core\ 0.1.0. This release includes a breaking change in version 0.10.0 where \A2uiAgentConnector.stream\ now emits \package:a2ui\_core\ message types, requiring consumers to depend on \a2ui\_core\ directly to process these messages.

_packages/genui\a2a · high confidence

macOS Runner project migrated to simple\_chat with CocoaPods and Swift Package integration

The macOS Xcode project for the simple\_chat example has been moved from the genui\_client package and updated to build the simple\_chat.app target. The project now integrates CocoaPods, adding build phases to check the Pods Manifest.lock and linking Pods\_Runner and Pods\_RunnerTests frameworks. It also links the FlutterGeneratedPluginSwiftPackage via Swift Package Manager, ensuring the build environment is correctly configured for the example app.

_examples/simple\chat/macos/Runner.xcodeproj · high confidence

Fixes

Added JSON Schema Test Suite and a2ui submodules

The repository now includes two new Git submodules: the JSON Schema Test Suite and a2ui. These external projects are tracked at specific commits (15e4505 and 39a26c1 respectively) to ensure consistent versions of these dependencies are used during development and testing.

submodules · high confidence

Test coverage

Added end-to-end tests for the simple chat example; Added integration tests for the simple chat example; Added placeholder macOS runner tests for the simple\_chat example; Added smoke and unit tests for the simple chat example; Added test coverage for Genui facade and utility components; Added test coverage for genai\_primitives; Added test coverage for genui model and function logic; Added test coverage for the GenUI catalog, surface, and error handling systems; Added test for DebugCatalogView rendering; Added test infrastructure for catalog gallery sample location and HTTP mocking; Added tests for A2UI transport parsing and adapter logic; Added tests for SurfaceController lifecycle and state management; Added tests for genUI catalog functions and core widgets; Added tests for json\_schema\_builder schema validation and caching; Added unit tests for the A2A client, transport, and core data models; Added validation and widget tests for SurfaceController and SurfaceWidget; Added validation tests for catalog item examples; Added widget tests for core UI components.

Dependencies

Add CocoaPods manifests and update dependencies for Flutter examples and tools

This change adds iOS and macOS Podfile and Podfile.lock files for the \catalog\_gallery\, \composer\, \simple\_chat\, and \verdure\ examples, ensuring proper CocoaPods integration for native dependencies. It also updates \pubspec.yaml\ files across these examples and internal packages (such as \genui\, \genui\_a2a\, \json\_schema\_builder\, and \genai\_primitives\) to reflect current dependency versions, including \a2ui\_core ^0.1.0\, \genui ^0.10.0\, and \json\_schema\_builder ^0.1.3\. Additionally, the \simple\_chat\ example's Android configuration is updated to include FlutterFire plugins and new application identifiers.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 71.

Lenses

  • Code Health 90
  • Architecture 100
  • Maturity 76
  • Readiness 65
  • Security 67
  • Domain Modelling 100

Changes since last survey

  • 300 commits — 245 feature/other, 55 fixes

By area

  • packages/genui — 68 commits
  • (root) — 32 commits
  • examples/verdure — 29 commits
  • .github/workflows — 28 commits
  • packages/flutter_genui — 17 commits
  • packages/genai_primitives — 13 commits
  • examples/simple_chat — 12 commits
  • packages/a2ui_core — 11 commits
  • docs/contributing — 8 commits
  • packages/genui_a2ui — 8 commits
  • examples/catalog_gallery — 5 commits
  • packages/json_schema_builder — 5 commits
  • packages/genui_a2a — 4 commits
  • packages/genui_dartantic — 4 commits
  • packages/ui_primitives — 4 commits
  • tool/release — 4 commits
  • docs/assets — 3 commits
  • examples/eval — 3 commits
  • examples/travel_app — 3 commits
  • packages/flutter_genui_a2ui — 3 commits

Notable commits

  • fix: - Fix memory leaks in RefCountedValueNotifier and correct test failures - Fix infinite loop in _notifySubscribers when handling relative paths. - Ensure subscribeStream disposes of underlying ValueNotifier. - Dispose source notifiers in _ToStringNotifier, _ToBoolNotifier, _ToNumberNotifier. - Fix image_test.dart to properly mock HttpClient and use errorBuilder in Image widget. - Update audio_player_test.dart to match current implementation. - Apply minor formatting fixes in travel_app. - Pass absolutePath to checkType for more accurate error reporting. - Refactor catalog widgets to use BoundValue/BoundString for lifecycle safety - Replaced explicit subscribeTo calls with Bound* widgets across genui and travel_app catalog widgets. - Introduced BoundObject in widget_utilities.dart to handle generic object binding. - Removed subscribeTo* extension methods from widget_utilities.dart to prevent misuse and memory leaks. - Fixed choice_picker.dart to use BoundObject instead of abstract BoundValue. - DataModel is now an abstract interface class. - InMemoryDataModel provides the concrete implementation. - DataPath is required for update, subscribe, and getValue operations. - DataModel.bindExternalState now returns a disposal function for easier cleanup. - ExpressionParser updated to return Stream<String> consistently for string interpolation. - Added DataModelTypeException for runtime type mismatches in getValue. - Updated travel_app and tests to reflect these API changes. - Renamed DataContext.evaluate to resolve and ensured it always returns Stream<Object?>. - Removed implicit expression parsing from DataModel.getValue and subscribe. They now only accept paths. - Moved ExpressionParser logic to lib/src/functions/format_string.dart and restricted its usage to FormatStringFunction. - Updated WidgetUtilities to use resolve via resolveContext and handle stream subscriptions correctly. - Updated Button, TextField, and ValidationHelper to await resolve results. - Updated travel_app and genui tests to reflect these changes. - Fixed DataModel to handle empty argument lists in function calls to prevent stalled streams. - Fixed async error handling in Surface and associated tests.
  • fix: Add diagram, link pub.dev and fix capitalization in the headers. (#592)
  • fix: Cleanup and fix workflows. (#812)
  • fix: Fix Travel App inferences by removing core catalog items, adding imageFixedSize item (#519)
  • fix: Fix Verdure (#897)
  • fix: Fix Verdure example server on macOS, iOS and Android (#593)
  • fix: Fix and stabilize TextField. (#1022)
  • fix: Fix basic chat app through prompt engineering (#536)
  • fix: Fix broken link. (#880)
  • fix: Fix broken links. - (#1009)
  • fix: Fix chunk newline. (#1017)
  • fix: Fix dangling references to AiClient. (#490)
  • fix: Fix error being reported twice on both console and error stream from Firebase AI content generator (#530)
  • fix: Fix eval tests (#846)
  • fix: Fix flutter action version (#817)
  • fix: Fix generation error by reverting changes to add ContentGenerator and flutter_genui_a2ui (#454)
  • fix: Fix genui_a2ui example app build for iOS and MacOS (#579)
  • fix: Fix graph connections in README.md
  • fix: Fix infinite looping and turn on forced function calling again. (#457)
  • fix: Fix issues related to gitignored files (#547)
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

flutter/genui was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit d88aa765eb7d0a72ee4d98aa687a60a14fb38947 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.