--- title: "Release Notes v0.5.3" description: "Release notes for RoomSharp 0.5.3." canonical: "https://roomsharp.dev/docs/v0.5.4/release-notes-0-5-3" source: "src/content/v0.5.4/release-notes-0-5-3.mdx" --- # RoomSharp 0.5.3 - Release Notes ## Highlights - Source generator hardening for `[Transaction]`, query parameter rewriting, and entity resolution. - Safer generated SQL preparation for provider-specific syntax. - Additional tests for generator correctness and SQL scanning edge cases. ## Source Generator - `[Transaction]` on streaming DAO methods now reports a compile-time diagnostic. `IAsyncEnumerable` results execute over time, so a transaction wrapper around the method call cannot define a clear lifetime. - Generated transaction wrappers pass the DAO `CancellationToken` into `RunInTransactionAsync` and `RunInTransaction`. - Query parameter replacement is now SQL-aware. It does not rewrite: - PostgreSQL casts like `created_at::date`. - SQL Server variables like `@@ROWCOUNT`. - String literals. - SQL comments. - Entity and view lookup now prefers fully-qualified type names before simple names. ## Runtime - Added `SqlHelpers.ReplaceNamedParameters()` for safe generated query preparation. - Improved consistency between SQL diagnostics and runtime SQL preparation for named parameters. ## Compatibility No intentional breaking API changes. If you previously relied on `[Transaction]` with `IAsyncEnumerable`, that combination now fails at build time. Use an explicit transaction/session scope around enumeration instead. ## Verification - Source generator tests cover transaction wrappers, transaction streaming diagnostics, safe parameter replacement, and fully-qualified entity selection. - SQL scanner tests cover PostgreSQL casts and SQL Server system variables. ## Related - [Changelog](/docs/v0.5.4/changelog) - [Transactions](/docs/v0.5.4/transactions) - [Generated Code](/docs/v0.5.4/generated-code)