TeaQL 1.0.0 Release Notes
We are thrilled to announce the release of TeaQL 1.0.0! This milestone marks the stabilization of our core APIs, major performance improvements, and a completely redefined model-driven development experience across both Rust and Java (Spring Boot) ecosystems.
TeaQL 1.0.0 focuses on API Elegance, Developer Ergonomics, AI-Native Workflows, and Transaction Safety.
๐ Major Highlightsโ
1. Ultra-Elegant Native Chained Mutations (Zero-Repo)โ
We have completely phased out raw repository-level guard classes (e.g., QueryCommentGuard). Operations on entities are now performed entirely via pure, fluent, object-oriented method chaining on the generated entities themselves.
- Before: Manual context building, repository lookups, and passing guards.
- After (Rust/Java):
// Beautiful, domain-driven API
task.update_status_to_planned()
.set_comment("Start working on feature X")
.save(&ctx)
.await?;
All persistence and graph relationship merging happens automatically under the hood via the newly stabilized entity.save(&ctx) method.
2. Complete Transaction & Topological Safetyโ
- Postgres ID Generation Race Fixed: The core graph engine now correctly analyzes dependency topology. Entities are inserted in the exact required order (e.g.,
ProductbeforeOrderLine), ensuring foreign-key relationships are established perfectly and IDs are generated without race conditions. - Java
@TransactionalIntegration: Large operations like sample data generation are now wrapped in a single, unified transaction context. This provides a massive performance boost (thousands of inserts in milliseconds) and ensures atomic rollbacks. - Rust
QueryExecutorStability: Deep integration with SQLx ensures thatentity.save(&ctx)intelligently triggersbegin_transactionandcommit_transaction, handling complex graph-writes as a single atomic unit.
3. API Naming Convention Modernization (which_ โก๏ธ with_)โ
To improve semantic clarity and readability, all query filtering methods have been renamed from which_* to with_*.
which_name_contains->with_name_containswhich_status_is->with_status_is
This change makes complex queries read exactly like natural language.
4. AI-First Architecture (AGENTS.md)โ
TeaQL 1.0.0 is the first framework built with AI-Coding agents in mind. Our code generators now emit an AGENTS.md file designed to directly instruct LLMs (like Cursor, GitHub Copilot, and Claude) on your project's data architecture, constraints, and Red Lines (e.g., mandatory audit logging requirements via .set_comment()).
๐ Bug Fixes & Core Improvementsโ
- Macro Stability: Cleaned up outdated
attach_root_recursivegeneration logic inteaql-macros. - Date/Timestamp Parsing: Fixed edge-case bugs in Text-to-Date and Timestamp conversions.
- Version Updates: Fixed issues where version fields were incorrectly skipped during optimistic locking updates.
- Inverse Relations: Added robust support for resolving both one-to-many and one-to-one inverse relations during relation loading.
- Schema Migration: Stripped identifier quotes before comparing columns to prevent unnecessary migrations on MySQL/Postgres.
โ ๏ธ Breaking Changesโ
- Repository Access: Manual instantiation of
TaskRepositoryorQueryCommentGuardis strictly deprecated and removed. Use.save(&ctx)on the entity. - Query Prefixes: Any existing code using
which_must be updated to usewith_. - Audit Log Enforcement: Calling
.save(&ctx)on core entities will now strictly mandate the presence of an audit comment via.set_comment().
๐ฆ Upgradingโ
For Rust users:
Update your Cargo.toml:
teaql-core = "1.0.0"
teaql-macros = "1.0.0"
teaql-runtime = "1.0.0"
teaql-provider-sqlx-postgres = "1.0.0"
For Java/Spring Boot users:
Update your Maven/Gradle plugin version to 1.0.0 and regenerate your project.
Thank you to all contributors who helped test the beta versions leading up to 1.0.0! Happy coding! โ
