NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Firebase AI (Gemini) schema converter for the Ack validation library
Last release today
07 Oct 2026
Release timing varies
gaps range from 8 days to 3 months
Nearly every release is documented
notes for 10 of 10 stable releases
Nothing withdrawn
no release was ever pulled
9 months old
23 releases · first in 2025
One column per month.
Imported pattern expressions now use ECMA-262 Unicode mode. This is a deliberately accepted breaking change in 1.7.0, affecting users upgrading from s…
contains and if/then/else.keyword, documentUri, and pointer through JsonSchemaValidationError. Source pointers correctly encode URI fragments containing percent signs, spaces, #, and Unicode.Imported pattern expressions now use ECMA-262 Unicode mode. This is a deliberately accepted breaking change in 1.7.0, affecting users upgrading from stable 1.6.2 or earlier 1.7.0 betas.
. matches one code point: ^.$ accepts 😀, while ^..$ no longer matches its two UTF-16 code units. Review identity escapes too; replace ^\d{3}\-\d{4}$ with ^\d{3}-\d{4}$ outside character classes. Invalid Unicode-mode patterns fail import with an invalid_schema diagnostic.
Native Ack.string().matches() retains its Dart regex behavior. A native pattern can behave differently or fail import after export to JSON Schema.
Existing SchemaValidationError catches still work. Consumers requiring an exact runtime type or serialized error-map shape should allow the new subtype and its three additional fields. Initial null-input and JSON-value checks retain their existing Ack error types.
The beta.3 annotation and generator migrations still apply to users upgrading from older versions.
Full workspace tests, minimum Dart/Flutter checks, API comparison against 1.6.2, deterministic generation, Draft-7 validation, documentation validation, and zero-warning publish dry runs passed. The local aggregate passed 2,161 tests, including 394 generator tests; four opt-in Firebase live tests were skipped without credentials.
All five packages are aligned at 1.7.0-beta.4 : ack , ack_generator , ack_json_schema_builder , ack_mcp_dart , and ack_firebase_ai .
All five packages are aligned at 1.7.0-beta.4: ack, ack_generator, ack_json_schema_builder, ack_mcp_dart, and ack_firebase_ai.
Ack.fromJsonSchema() now validates the supported date-time format automatically. Unsupported format labels continue to produce diagnostics.Ack.string().datetime() now accepts lowercase t and z on announced leap seconds.ack 1.7.0-beta.4 or later, without a new API or dependency minimum.final timestamp = Ack.fromJsonSchema({
'type': 'string',
'format': 'date-time',
});
timestamp.parse('2024-02-29T12:34:56.123456789+02:00');Ack's strict JSON Schema importer supports a documented subset; this release does not claim full JSON Schema Draft 2020-12 support.
No new generator or annotation migration is introduced in beta.4. When upgrading from beta.2 or earlier, the beta.3 breaking migrations still apply: annotations moved into ack, @Schemable() is the unified entry point, and JsonKey is no longer re-exported. See the repository changelog for the full migration details.
The reviewed release commit passed CI, browser tests, release preflight, schema validation, API compatibility checks, and zero-warning publish dry runs for all five packages.
Release commit: 0023d152288fb69b2967d230481fe8b681606d8b.
Files that use constraint annotations or the deprecated spellings also import package:ack/annotations.dart , with a prefix ( as ack ) where a name cla…
ack_annotations package; the annotations ship in ack. Modelspackage:ack/ack.dart (@Schemable, @AckField, @Optional,@Required, @NotNull). Files that use constraint annotations or thepackage:ack/annotations.dart, with aas ack) where a name clashes with another type. Formatpackage:ack/format_annotations.dart.@Schemable() is the single annotation for schema-first and class-first@AckInfer() and @AckModel() are deprecated and will be@Pattern to @Matches. The deprecated Pattern alias stays inpackage:ack/annotations.dart; an unprefixed import of that library hidesdart:core's Pattern.ack no longer depends on json_annotation or re-exports JsonKey. A field@JsonKey(name: ...) imports JsonKey frompackage:json_annotation and the app depends on json_annotation.AckModel.jsonSerializable and AckGeneratedJson.config are removed.schema resolves to it withschema<A>() method that can receive each type argument's schema.@AckField(schema:) functions, non-finite constraint values, @SchemableJsonConverter annotations on class-firstack 1.7.0-beta.3.Align with the coordinated Ack 1.7.0 beta. This package has no source or public API changes from 1.6.2; compatible dependency minimums are preserved.
This coordinated release publishes ack , ack_annotations , ack_generator , ack_json_schema_builder , ack_mcp_dart , and ack_firebase_ai at version 1.6
This coordinated release publishes ack, ack_annotations, ack_generator, ack_json_schema_builder, ack_mcp_dart, and ack_firebase_ai at version 1.6.2.
Ack.fromJsonSchema() now compiles the standard pattern keyword, restoring import of schemas exported from Ack. It uses an unanchored ECMA-262 search on strings and rejects invalid regular expressions at import time.Ack.fromJsonSchema() now accepts the standard propertyNames keyword to validate each object key against its subschema. Both keywords round-trip through Draft-7 export unchanged.The other five packages are version aligned and have no source or public API changes from 1.6.1. Compatible sibling dependency minimums remain unchanged.
See the publishing guide and changelogs for details.
Honor effective nullability consistently across unions, defaults, boundaries, codecs, object properties, and list-item validation.
All six ACK packages are aligned at 1.6.1. See the core package changelog for compatibility details and migration guidance.
Align with the coordinated Ack 1.6 release; this package has no runtime or public API changes from 1.5.0.
Align with the coordinated Ack 1.5 release; this package has no runtime or public API changes from 1.4.0.
@AckField(presence: ...) remains during migration and is deprecated for removal in 2.0.0.
Ack 1.4 adds @Optional(), @Required(), and @NotNull() so class-first
models can override JSON key presence independently of whether a present
value may be null. @AckField(presence: ...) remains during migration
and is deprecated for removal in 2.0.0.
null on a nullable Dart field with @NotNull().copyWith from the constructor type so optional non-nullablenull.All six packages use version 1.4.0: ack, ack_annotations, ack_generator,
ack_firebase_ai, ack_json_schema_builder, and ack_mcp_dart.
The runtime, Firebase, JSON Schema, and MCP packages have no runtime or
public API changes from 1.3.0.
Ack 1.3 adds ack_mcp_dart , a small adapter that uses one ACK input contract for MCP tool discovery and runtime argument parsing with mcp_dart ^2.4.2
Ack 1.3 adds ack_mcp_dart, a small adapter that uses one ACK input contract for
MCP tool discovery and runtime argument parsing with mcp_dart ^2.4.2.
All six packages use version 1.3.0: ack, ack_annotations, ack_generator,
ack_firebase_ai, ack_json_schema_builder, and ack_mcp_dart.
The existing five packages have no runtime or public API changes from 1.2.0,
and compatible dependency minimums remain at ^1.2.0.
Release tooling now uses Melos fixed versions and a shared workspace tag,
compares APIs with 1.2.0, and supports resuming a partially completed publication.
ack_mcp_dart;
this package has no runtime or public API changes from 1.2.0.docs: align contracts and Firebase fixture dependencies by @leoafarias in #126
Full Changelog: v1.1.0...v1.2.0
Ack 1.1.0 is a correctness-focused release that aligns runtime validation, generated schemas, and tooling with their documented contracts. It does not
Ack 1.1.0 is a correctness-focused release that aligns runtime validation,
generated schemas, and tooling with their documented contracts. It does not
change the public Dart API surface.
safeParse non-throwing for recoverable callback exceptions whileError values so programming defects remain visible.t and z separators.multipleOf, IPv6, RFC 3339 date-times, range bounds, collectionallOf, and export exactsource_gen diagnostics without undeclared debug-file output.Although the public API is unchanged, invalid or ambiguous inputs that were
previously accepted may now fail earlier:
ArgumentErrors.Ack.list(item).nullable()), not its item.multipleOf.toJsonSchema().AckException from parse() when a recoverable constraint orSee the package changelogs for the complete behavior notes.
This patch hardens recursive schemas built with Ack.lazy against unbounded recursion.
This patch hardens recursive schemas built with Ack.lazy against unbounded recursion.
Ack.lazy / LazySchema (#122): recursive schemas nowlazy_max_depth: "Maximum recursion depth (N) exceeded.") instead of crashing.Ack.lazy(...) accepts an optional maxDepth (default LazySchema.defaultMaxDepthcopyWith, equality, and serialization.maxDepth check can't be expressed via$ref and is omitted from the exported schema.Behavior note: recursion is now capped at depth 100 by default. Structures that
legitimately nest deeper must pass an explicit highermaxDepth.
The other packages (ack_annotations, ack_generator, ack_json_schema_builder,
ack_firebase_ai) are version-aligned to 1.0.1 with no functional changes.
Ack 1.0.0 is the first stable release of Ack, a schema validation library for Dart and Flutter. Ack helps you validate untrusted data at application b
Ack 1.0.0 is the first stable release of Ack, a schema validation library for Dart and Flutter. Ack helps you validate untrusted data at application boundaries, reuse the same schemas across runtime validation and JSON workflows, and generate typed wrappers when you want stronger ergonomics than map access.
Start with the documentation site or jump straight into the Quickstart Tutorial.
safeParse, SchemaResult, structured paths, and readable validation messages.@AckType() for extension types, typed getters, parse, and safeParse.toJsonSchema() and the reusable schema-model boundary for adapter authors.ack: core runtime validation library.ack_annotations: @AckType() annotation package.ack_generator: build_runner generator for typed schema wrappers.ack_json_schema_builder: adapter for json_schema_builder.ack_firebase_ai: Firebase AI structured-output schema adapter.Ack also publishes an llms.txt index with a compact overview of the packages, core APIs, code generation workflow, and common examples.
This release was validated with the full package test suites, documentation checks, example tests, and pub.dev dry-runs before publishing. All five packages are now available on pub.dev at version 1.0.0.
DoubleSchema and NumberSchema now reject non-finite values ( NaN , Infinity , -Infinity ) during runtime validation by default, aligning numeric schem
ackBreaking
DoubleSchema and NumberSchema now reject non-finite values (NaN, Infinity, -Infinity) during runtime validation by default, aligning numeric schemas with JSON-safe values.AckSchemaModel variants and a canonical AckSchema.toSchemaModel() adapter conversion.Added
Ack.enumCodec<T extends Enum>(List<T> values) returns a CodecSchema<String, T> wrapping EnumSchema<T>.NumberSchemaExtensions adds fluent numeric constraints to Ack.number(): .min, .max, .greaterThan, .lessThan, .positive, .negative, .multipleOf.Changed
Migration
double/num values. If a boundary must accept NaN/infinities, model that value outside the JSON numeric schema path before validation.ack_annotationsBreaking — Removed AckModel, AckField, and decorator annotations. Only @AckType() remains.
ack_generatorBreaking — Removed class-based schema generation. Only top-level @AckType() schema variables and getters are supported.
ack_firebase_aitoFirebaseAiResponseJsonSchema() for Firebase AI's GenerationConfig.responseJsonSchema path, plus committed golden fixtures and native fixture corpora.Schema conversion APIs — use toFirebaseAiResponseJsonSchema() instead.ack_json_schema_builderAckSchemaModel boundary and generic Draft-7 JSON Schema renderer; preserves defaults, const values, extension keywords, transformed metadata, and composition.All five packages are released in lockstep at 1.0.0-beta.12.
toFirebaseAiResponseJsonSchema() for Firebase AI's
GenerationConfig.responseJsonSchema path.responseJsonSchema generation and ACK validation.responseJsonSchema golden fixtures and a
fixture generator so converter coverage runs without Firebase credentials.Schema.toJson() and JSONSchema.toJson() native
fixture corpora with adapter capability classifications.^3.12.1 and models that support JSON Schema
structured output.gemini-3.5-flash.ack ^1.0.0-beta.12 for the sealed AckSchemaModel
adapter boundary.firebase_ai and Flutter as explicit package dependencies so package
tests and workspace orchestration use the Firebase AI SDK runtime.Schema conversion APIs. Use
toFirebaseAiResponseJsonSchema() with
GenerationConfig.responseJsonSchema.chore(release): bump to 1.0.0-beta.11
chore(release): bump to 1.0.0-beta.11 (#102)
docs: add ack package README for pub.dev
docs: add ack package README for pub.dev (#98)
chore(release): bump to 1.0.0-beta.9
chore(release): bump to 1.0.0-beta.9 (#88)
ack_json_schema_builder@1.0.0-beta.8
* See release notes for details.
Updated dependency on ack to v1.0.0-beta.6
Updated dependency on ack to v1.0.0-beta.5
meta and test dependencies to latest versions (#56)Preserve nullable metadata in firebase ai converter
Your coding agent can read these notes before it upgrades. Set up the MCP server →