Recent Releases
| Version | Date | Theme | Status |
|---|---|---|---|
v0.28.0 | April 27, 2026 | Breaking cleanup release for panic-safe builders, canonical tenant naming, and legacy API removal | Latest |
v0.27.10 | April 23, 2026 | LSP schema cache reload, completion gating, diagnostics ordering, and UTF-16 range fixes | Stable |
v0.27.9 | April 17, 2026 | Scanner parsing fixes for inline comments and mixed explicit-apply command blocks | Stable |
v0.27.8 | April 7, 2026 | Shadow migration database-name quoting fix for hyphenated names | Stable |
v0.27.7 | April 4, 2026 | Gateway auth contract tightening and migration scanner delta handling | Stable |
v0.27.6 | March 31, 2026 | Non-breaking patch release with workspace/versioning/docs alignment | Stable |
v0.27.5 | March 30, 2026 | Legacy syntax guidance cleanup and docs/search alignment | Stable |
v0.27.4 | March 30, 2026 | Native DSL benchmark correction and aggregate fast-path tuning | Stable |
v0.27.3 | March 28, 2026 | Filter-cage semantic parity hardening and parser/transpiler/encoder regression safety | Stable |
v0.27.2 | March 27, 2026 | Replay/idempotency isolation hardening and branch lifecycle correctness | Stable |
v0.27.1 | March 26, 2026 | QWB2 parse-free binary ingress hardening and workspace release bump | Stable |
v0.27.0 | March 25, 2026 | Pipeline API naming consistency and AST execution strategy/planner release | Stable |
v0.26.6 | March 24, 2026 | Strict migration apply ordering and final-state policy verification | Stable |
v0.26.5 | March 23, 2026 | Linux io_uring backend hardening and feature wiring cleanup | Stable |
v0.26.3 | March 21, 2026 | Workspace version bump and docs/readme refresh | Stable |
v0.26.2 | March 20, 2026 | PostgreSQL protocol 3.2 default startup and compatibility downgrade path | Stable |
v0.26.1 | March 20, 2026 | Release CI fixes and crate/readme parity cleanup | Stable |
v0.26.0 | March 20, 2026 | Tenant-only runtime semantics and gateway correctness | Stable |
v0.25.1 | March 18, 2026 | Migration safety and receipt integrity | Stable |
v0.25.0 | March 12, 2026 | AST-only runtime path (raw SQL APIs removed) | Stable |
v0.24.6 | March 11, 2026 | PG auth and GSS URL compatibility | Stable |
Dedicated Driver, Gateway, and SDK Pages
- Rust PostgreSQL: /rust (qail-pg reference page).
- Zig PostgreSQL: /zig (qail-zig landing page), /zig/docs (docs), and /zig/changelog (separate Zig release history).
- Qdrant Vector: /qdrant (qail-qdrant capability page).
- Gateway AutoREST: /gateway (qail-gateway landing page).
- SDKs: /sdk (TypeScript, Swift, Kotlin SDK page).
v0.28.0
April 27, 2026 Latest Breaking API Cleanup + Panic-Safety Hardening — redundant compatibility APIs were removed after the panic-safety audit, while the surviving builders and encoders now use the canonical fallible paths.
Breaking Changes
- RLS builder API: the redundant
try_with_rls()compatibility alias was removed; usewith_rls(&ctx)?. - Relation join API: the redundant
try_join_on()alias was removed; use falliblejoin_on(...)?. - Wire encoding:
try_encode_cmd_binary()was removed;encode_cmd_binary()is the fallible binary encoder. - Analyzer mode: unused
AnalysisMode::Regexwas removed; non-Rust files reportTextSemantic. - Build validation: the string-only
validate_against_schema()wrapper was removed; use structuredvalidate_against_schema_diagnostics(). - PostgreSQL cancel keys: legacy
i32cancel-key wrappers were removed; use bytes-native cancel key APIs.
Highlights
- Builder safety: RLS insert scoping now returns structured build errors for unsupported positional payloads instead of exposing a panic surface.
- Encoder safety: binary AST encoding now keeps payload-size failures on the fallible path.
- Tenant naming: docs and runtime guidance now consistently use
tenant_id; legacyoperator_idJWT claims are not mapped into tenant scope. - Compatibility cleanup: old aliases and stale docs were removed ahead of the
0.28.xline.
v0.27.10
April 23, 2026 Stable LSP Workspace Reload Fixes — schema reload, completion context, diagnostics ordering, and UTF-16-safe ranges were tightened for editor users.
Highlights
- Schema cache reload: LSP schema resolution is now workspace-scoped and reload-aware, preventing stale diagnostics and completions after schema edits.
- Completion gating: suggestions are constrained to active Rust builder and QAIL query contexts instead of appearing broadly in unrelated cursor locations.
- Diagnostics lifecycle: document versions are tracked, out-of-order changes are ignored, and closed documents clear diagnostics correctly.
- Range correctness: hover and embedded-query hit testing now use UTF-16-safe ranges for non-ASCII text.
- Versioning/docs: workspace crates and docs/install/readme references were bumped to
0.27.10.
v0.27.9
April 17, 2026 Stable Scanner + Explicit Apply Parsing Fixes — migration scanner handling for inline-commented column arrays and explicit-apply mixed command blocks is now hardened.
Highlights
- Scanner inline comment handling: const column arrays with inline comments now parse correctly in scanner preprocessing without swallowing the remainder of the statement.
- Explicit apply parsing:
parse_qail_to_commands_strictnow accepts mixed command blocks (for example enum + alter + partial index) in explicit apply mode. - Versioning/docs: workspace crates and install/readme references were bumped to
0.27.9.
v0.27.8
April 7, 2026 Stable Shadow Migration Quoting Patch —
qail migrate shadow now safely handles hyphenated database names.
Highlights
- Shadow DB handling: create/drop operations now quote shadow database identifiers so names like
qail-engine-db_shadowwork correctly. - Versioning/docs: workspace crates and install/readme references were bumped to
0.27.8.
v0.27.7
April 4, 2026 Stable Gateway Auth Contract + Scanner Delta Update — platform-admin auth aliases were removed and migration scanner behavior was tightened.
Highlights
- Gateway auth contract: platform scope now requires explicit
platform_admin=true; legacy aliases are rejected. - Migration scanner delta support: scanner now understands migration deltas and preserves helper-scoped tenant filters in an explicit AND cage.
- Driver docs positioning: qail-pg docs/examples were reframed around the driver-first native AST execution path.
- Versioning/docs: workspace crates and install/readme references were bumped to
0.27.7.
v0.27.6
March 31, 2026 Stable Non-Breaking Patch Release — workspace crates, docs, and install snippets were bumped to
0.27.6 with no API contract changes versus 0.27.5.
Highlights
- Versioning/docs: bumped workspace crate manifests and docs/install/readme references to
0.27.6. - Release contract: this is a non-breaking patch release; runtime and API behavior are unchanged from
0.27.5.
v0.27.4
March 30, 2026 Stable Native DSL Benchmark + Aggregate Hot Path — the canonical pgx comparison now measures native QAIL ASTs, and the aggregate receive path runs on the zero-copy fast path.
Highlights
- Benchmark surface correction: the public Rust PostgreSQL benchmark now measures qail-rs from native
QailASTs against pgx SQL strings instead of starting qail-rs from raw SQL. - Aggregate fast path: grouped scalar aggregate results now use the dedicated four-column zero-copy receive path with tighter query/pipeline buffer reuse.
- Current benchmark read: the March 30 one-round native snapshot was a
15 / 15throughput sweep; the latest April 22 median refresh is the live canonical read and stays positive on14 / 15throughput slices, all five p50 slices, and four of five p99 slices. - Versioning/docs: workspace crates and docs references were bumped to
0.27.4.
v0.27.3
March 28, 2026 Stable Filter-Cage Semantics Patch — OR-filter intent is preserved across execution paths with reinforced parser/transpiler/encoder parity guards.
Highlights
- Semantic parity: chained
or_filter(...)behavior is now consistently preserved as grouped predicate intent (AND (... OR ...)) across runtime SQL generation paths. - Regression coverage: parser/transpiler/encoder parity checks were extended to prevent future OR-to-AND behavior drift.
- Versioning/docs: workspace crates and docs references were bumped to
0.27.3.
v0.27.2
March 27, 2026 Stable Security + Correctness Patch — replay/idempotency isolation hardening, branch overlay/write-path correctness fixes, and strict branch lifecycle validation.
Highlights
- Idempotency isolation: request fingerprints now include behavior-changing headers (
prefer,x-transaction-id,x-branch-id,x-qail-result-format). - Anonymous replay safety: unauthenticated requests now bypass idempotency caching to prevent cross-client key collisions when auth is disabled.
- Branch overlay correctness: update overlays now patch matching rows by PK, preserve PK identity for branch-only rows, and get-by-id can resolve branch-only overlays.
- Branch lifecycle hardening: overlay read/write/merge/stats SQL paths now operate only on active branches, branch create fails when parent is missing/inactive, and branch delete returns not found for non-active/non-existent branches.
- Auth gate ordering: branch read endpoints now enforce branch-admin authorization before DB execution.
- Versioning: workspace crates bumped to
0.27.2.
v0.27.1
March 26, 2026 Binary Ingress Hardening Patch — strict QWB2 parse-free decode, bounded binary AST payload handling, and workspace crate version bump.
Highlights
- QWB2 strictness: binary endpoint now rejects legacy QWB1/raw-text payloads and uses strict QWB2 AST decode for ingress.
- Safety: binary AST decode now applies explicit payload limits to prevent unbounded allocation on malformed payloads.
- Gateway benchmark parity: release notes include text-vs-binary gateway benchmark validation under identical endpoint shape.
- Versioning: workspace crates bumped to
0.27.1.
v0.27.0
March 25, 2026 Pipeline API Consistency Release — unified
pipeline_execute_* naming, AST pipeline strategy controls, and prepared AST hot-path execution.
Highlights
- Breaking API rename: standardized pipeline method names to
pipeline_execute_*across driver/connection/pool surfaces (for examplepipeline_batch->pipeline_execute_count). - Pipeline strategy: added
AstPipelineMode(Auto,OneShot,Cached) plus plan surfacesAutoCountPlanandAutoCountPath. - Prepared AST handle: added
PreparedAstQuerywith dedicated prepared AST execution APIs for repeat-query hot paths. - Encoder fast path: added
AstEncoder::encode_cmd_sql_reuse(...)for caller-buffer SQL/param reuse. - Runtime hardening: cached AST pipeline now rolls back newly registered statements on encode/protocol failures and improves desync resilience.
- Policy behavior: gateway policy engine now denies when policies exist but none match table/operation, while preserving allow behavior for an empty policy set.
- Versioning: workspace crates bumped to
0.27.0.
v0.26.6
March 24, 2026 Migration Apply Correctness — strict apply ordering and policy verification now align to final migration intent.
Highlights
- Strict ordering: destructive/rename hints (
drop*,rename) now execute before declarative create paths in strict migration compilation. - Policy verification:
migrate applynow validates policy state by final expected(table, policy)after all commands in a migration complete. - Reliability: drop-and-recreate policy sequences in a single migration no longer fail from intermediate-state checks.
- Tests: added strict policy replace ordering coverage and final-intent expectation tests.
- Versioning: workspace crates bumped to
0.26.6.
v0.26.5
March 23, 2026 Linux io_uring Backend Hardening — startup backend checks, native feature wiring cleanup, and CI smoke coverage.
Highlights
- Coverage: added forced
QAIL_PG_IO_BACKEND=io_uringstartup-path smoke tests. - Tooling: added
scripts/check-io-uring-linux-cross.shfor Linux cross-target validation with local zig fallback support. - Runtime introspection: added
PgConnection::transport_backend()for telemetry and verification. - Feature wiring: removed stale
tokio-uringcoupling, addednative-io-uringalias, and retainedio_uringcompatibility. - Versioning: workspace crates bumped to
0.26.5.
v0.26.3
March 21, 2026Highlights
- Versioning: workspace crates bumped to
0.26.3. - Docs/readmes: refreshed installation snippets and version references to
0.26.3.
v0.26.2
March 20, 2026 PostgreSQL Protocol 3.2 Readiness — startup now prefers protocol 3.2 while preserving compatibility with older nodes.
Highlights
- Startup: default StartupMessage protocol is now
3.2(196610). - Compatibility: explicit protocol-version rejection triggers a one-shot retry using protocol
3.0(196608). - Wire decode: backend
NegotiateProtocolVersion('v') is now parsed and handled. - Cancel path: cancel secret keys are now bytes-native (
4..=256) with legacy i32 wrappers retained for compatibility. - Hardening: integration tests now cover startup negotiation and downgrade boundaries.
- Versioning: workspace crates bumped to
0.26.2.
v0.26.1
March 20, 2026 Patch and Metadata Parity — release reliability and docs/readme consistency updates.
Highlights
- CI: fixed publish workflow breakage after tenant-only runtime cutover.
- Gateway: binary examples aligned to
QWB1wire format. - Packaging: crate metadata/readme parity updates across release-track crates.
- Versioning: workspace crates bumped to
0.26.1.
v0.26.0
March 20, 2026 Tenant-Only Runtime Release — tenant_id is now the runtime contract across RLS context and gateway auth scoping.
Highlights
- Breaking: removed
RlsContext::operator(...)and runtime operator-scoped aliases in favor of tenant-only constructors. - Breaking: gateway runtime auth resolves tenant scope from
tenant_idonly; legacyoperator_idclaim no longer maps tenant context. - Gateway: fixed policy evaluation to avoid premature deny when later matching allow policies exist.
- Gateway: expanded
optimize_qail_for_execution(&mut cmd)coverage for consistent execution planning. - Analyzer: reduced false positives from comment/string-literal noise and tightened semantic diagnostics.
- SDK/Docs: direct SDK support surfaced for TypeScript, Swift, and Kotlin; Node.js native binding remains deferred.
- Versioning: workspace crates bumped to
0.26.0.
v0.25.1
March 18, 2026 Migration Integrity Release — safer rollback controls, receipt signing, and stronger lock/verification behavior.
Highlights
- CLI: added
migrate down --forcewith non-TTY unsafe guard and wait-for-lock support. - CLI: added JSON output mode for
migrate analyze. - Migrations: optional HMAC signing support for migration receipts.
- Migrations: advisory locks now scoped by database with stronger timeout diagnostics.
- Integrity: receipt signature verification enforced on apply and rollback paths.
- Versioning: workspace crates bumped to
0.25.1.
v0.25.0
March 12, 2026 Breaking Change — runtime path is AST-only by default.
Breaking Changes
- qail-core: removed raw SQL helpers including
Qail::raw_sql(...). - qail-pg: removed direct raw-SQL APIs from the primary runtime contract in this release line (later versions may expose compatibility wrappers for legacy tests/examples).
- Encoder: AST runtime path no longer allows raw SQL pass-through.
Migration Guidance
- Use AST-native builders (
Qail::get/add/set/del, typed filters, typed joins). - Use session AST commands (
Qail::session_set,session_reset) instead of raw strings. - Legacy raw examples moved behind
legacy-raw-examplesand disabled by default.
v0.24.6
March 11, 2026Highlights
- PG auth: decode support for auth code
6(AuthenticationSCMCredential) with explicit startup guidance. - PG URL aliases: added
krbsrvname,gsshostname, andgsslibcompatibility mappings. - Tests: added regressions for SCM auth decode and GSS URL alias parsing.
v0.24.5 / v0.24.4 / v0.24.2
March 2026Notable Changes
- v0.24.5: docs domain moved to
dev.qail.io, snippets/version references aligned. - v0.24.4: standardized wording around SQL strings vs protocol bytes across docs.
- v0.24.2: added
skip_lockedsupport and user-scopedRlsContext::user(user_id).
Source of Truth
This page is synced from the core repo changelog: github.com/qail-io/qail/CHANGELOG.md