## Release Notes: SeaORM 2.0.0-rc.29

*(since 2.0.0-rc.28)*

### New Features

**Tracing spans for database operations** (#2885)

Added `ObservabilityHook` and `with_db_span!` macro for distributed tracing support. Database operations and transactions emit tracing spans when the `tracing-spans` feature is enabled.

**Wrapper type for storing UUIDs as TEXT** (#2914)

Added a wrapper type for storing `Uuid` values as TEXT columns.

**`Insert::try_insert` method**

Added `try_insert` to the `Insert` trait for fallible insert operations.

**Filter relations outside generation set** (#2913)

Codegen now filters relations that fall outside the generation set.

### Bug Fixes

**Allow LEFT JOIN to produce None for nested models** (#2845)

Fixed handling of nested `Option<Model>` in `FromQueryResult` when using LEFT JOINs, so optional nested models correctly produce `None` when no related row exists.

**Fix DeriveIntoActiveModel** (#2926)

Fixed `DeriveIntoActiveModel` derive macro; added test coverage.

**Fix tracing spans visibility** (#2925)

Corrected tracing span visibility for database operations.

**Fix derive enums without per-case rename** (#2922)

Fixed codegen for enums that do not use per-variant `rename` attributes. Addresses [#2921](https://github.com/SeaQL/sea-orm/issues/2921).

**Fix renaming enum variants starting with digits** (#2905)

Enum variants that start with digits are now correctly renamed during codegen.

**Revert multi-argument extra attribute support** (#2915)

Reverted the multi-argument extra attribute codegen change (#2560) due to incorrect test input parsing that caused `syn` to panic. The attribute format should split arguments by `,`.

**Add missing lifetime hint to `EntityName::table_name`** (#2907)

Added the missing lifetime hint to fix compilation in certain contexts.

### Improvements

**Optimize exists** (#2909)

Improved performance of the `exists` query.
