# [cala release v0.12.21](https://github.com/GaloyMoney/cala/releases/tag/0.12.21)
### Features
- Add in_op_only option to generate only _in_op repo fns (#224)
# [cala release v0.12.20](https://github.com/GaloyMoney/cala/releases/tag/0.12.20)
### Features
- Relax generated _in_op operation bounds to ?Sized (#223)
# [cala release v0.12.19](https://github.com/GaloyMoney/cala/releases/tag/0.12.19)
### Features
- Blanket AtomicOperation impl for &mut O (#222)
# [cala release v0.12.18](https://github.com/GaloyMoney/cala/releases/tag/0.12.18)
### Features
- Make AtomicOperation object-safe via type-erased commit hooks (#221)
# [cala release v0.12.17](https://github.com/GaloyMoney/cala/releases/tag/0.12.17)
### Features
- Batch isolation helpers (run_isolated, run_bisected) (#220)
### Miscellaneous Tasks
- Bump the all-dependencies group with 2 updates (#219)
# [cala release v0.12.16](https://github.com/GaloyMoney/cala/releases/tag/0.12.16)
### Features
- Single-statement nested reads (#215)
### Miscellaneous Tasks
- Bump uuid from 1.24.0 to 1.24.1 in the all-dependencies group (#211)
# [cala release v0.12.15](https://github.com/GaloyMoney/cala/releases/tag/0.12.15)
### Features
- Allow nullable (Option<T>) scope columns (#209)
# [cala release v0.12.14](https://github.com/GaloyMoney/cala/releases/tag/0.12.14)
### Features
- Delegate AtomicOperation with a macro, drop WrapsOperation (#208)
# [cala release v0.12.13](https://github.com/GaloyMoney/cala/releases/tag/0.12.13)
### Features
- Derive savepoints for every AtomicOperation (#207)
# [cala release v0.12.12](https://github.com/GaloyMoney/cala/releases/tag/0.12.12)
### Features
- Multi-column repo scopes (#204)
- Update_all_mut_in_op accepts a chained iterator (#205)
### Miscellaneous Tasks
- Bump the all-dependencies group with 3 updates (#202)
# [cala release v0.12.11](https://github.com/GaloyMoney/cala/releases/tag/0.12.11)
### Features
- Batch nested-child persistence across the whole parent batch (#203)
# [cala release v0.12.10](https://github.com/GaloyMoney/cala/releases/tag/0.12.10)
### Features
- Runs_after commit-hook ordering (#201)
# [cala release v0.12.9](https://github.com/GaloyMoney/cala/releases/tag/0.12.9)
### Features
- Re-entrant commit-hook registration in HookOperation (#200)
# [cala release v0.12.8](https://github.com/GaloyMoney/cala/releases/tag/0.12.8)
### Features
- Savepoint-scoped ops for per-item batch isolation (#199)
# [cala release v0.12.7](https://github.com/GaloyMoney/cala/releases/tag/0.12.7)
### Bug Fixes
- Classify duplicate-id create violations deterministically (#198)
# [cala release v0.12.6](https://github.com/GaloyMoney/cala/releases/tag/0.12.6)
### Performance
- Collapse index+events writes into one round trip (#196)
# [cala release v0.12.5](https://github.com/GaloyMoney/cala/releases/tag/0.12.5)
### Features
- Id(scope) — scope a repo by its own id column (#182)
### Miscellaneous Tasks
- Bump vendir (ci) to galoy-concourse-shared 26b38b4
- Re-vendor for fuzz_job path fix (#21) (#194)
# [cala release v0.12.4](https://github.com/GaloyMoney/cala/releases/tag/0.12.4)
### Bug Fixes
- Exercise load_n multi-entity path in fuzz_event_hydration (Bugbot #189) (#190)
- Load_n(_,0) returns all entities & ManualClock::now() panics on huge advance() (#187)
### Features
- Add sync CommitHook::on_rollback (rollback-first-then-notify) (#193)
### Refactor
- Consume shared fuzz_job from galoy-concourse-shared (#192)
### Testing
- Cargo-fuzz targets + Concourse nightly fuzz job (GCS corpus) (#189)
# [cala release v0.12.3](https://github.com/GaloyMoney/cala/releases/tag/0.12.3)
### Bug Fixes
- Specialize list_for_filters on any equality index prefix (#185)
# [cala release v0.12.2](https://github.com/GaloyMoney/cala/releases/tag/0.12.2)
# [cala release v0.12.0](https://github.com/GaloyMoney/cala/releases/tag/0.12.0)
> Re-release of the **yanked** 0.11.13 under the correct version number. 0.11.13
> shipped the breaking change #178 as a patch release; the code in 0.12.0 is
> identical. Release-script fix that restores breaking-change detection: #181.
### Bug Fixes
- Remove panic paths from event persistence and last_persisted (#172)
### Documentation
- Warn about PII/user-enumeration risk of ConstraintViolation values (#173)
### Features
- [**breaking**] Unify list_for_filters cursor + derive specialization & errors from migration indexes (P2+P3) (#178)
- Unified cursor query emission (reverts per-state matrix) (#177)
- Add exponential backoff to retry_on_concurrent_modification (#174)
### Miscellaneous Tasks
- All-dependencies group (syn 3) + darling 0.24 to fix the build (#180)
- Bump event-listener to 5.4.2 to patch RUSTSEC-2026-0221 (#171)
- Bump rustls-webpki 0.103.9 -> 0.103.13 (#176)
# [cala release v0.11.13](https://github.com/GaloyMoney/cala/releases/tag/0.11.13) — YANKED
Superseded by [0.12.0](https://github.com/GaloyMoney/cala/releases/tag/0.12.0) (identical code, correct version).
# [cala release v0.11.12](https://github.com/GaloyMoney/cala/releases/tag/0.11.12)
### Features
- Scope column composes with find_by/list_for filters (#170)
# [cala release v0.11.11](https://github.com/GaloyMoney/cala/releases/tag/0.11.11)
### Performance
- Gate sargable multi-filter matrix behind opt-in (#168)
# [cala release v0.11.10](https://github.com/GaloyMoney/cala/releases/tag/0.11.10)
### Features
- Repo.scoped(scope) bound view for scoped repositories (#167)
- Scoped repositories — compile-enforced scope argument on reads (#166)
# [cala release v0.11.9](https://github.com/GaloyMoney/cala/releases/tag/0.11.9)
### Performance
- Emit sargable per-state SQL for list queries (#162)
# [cala release v0.11.8](https://github.com/GaloyMoney/cala/releases/tag/0.11.8)
### Performance
- Lazy event-context seeding — skip stack work on untouched polls (#164)
# [cala release v0.11.7](https://github.com/GaloyMoney/cala/releases/tag/0.11.7)
### Features
- Preserve commit-hook registration order in execute_pre (#160)
# [cala release v0.11.6](https://github.com/GaloyMoney/cala/releases/tag/0.11.6)
### Documentation
- Update dependency versions and add forgettable payloads section
### Miscellaneous Tasks
- Bump the all-dependencies group with 4 updates (#159)
# [cala release v0.11.5](https://github.com/GaloyMoney/cala/releases/tag/0.11.5)
### Features
- Add JsonSchema support for Forgettable<T> (#157)
# [cala release v0.11.4](https://github.com/GaloyMoney/cala/releases/tag/0.11.4)
### Features
- [**breaking**] Add global toggle for SQL trace-context annotation (default off) (#156)
# [cala release v0.11.3](https://github.com/GaloyMoney/cala/releases/tag/0.11.3)
### Features
- Add AtomicOperation::supports_hooks() probe (#155)
# [cala release v0.11.2](https://github.com/GaloyMoney/cala/releases/tag/0.11.2)
### Features
- [**breaking**] Annotate SQL statements with OTel trace context via AtomicOperation (#154)
# [cala release v0.11.1](https://github.com/GaloyMoney/cala/releases/tag/0.11.1)
# [cala release v0.10.41](https://github.com/GaloyMoney/cala/releases/tag/0.10.41)
### Features
- Add AtomicOperation::commit_hook typed read access to registered commit hooks (#151)
### Miscellaneous Tasks
- Bump the all-dependencies group across 1 directory with 3 updates (#149)
- Bump the all-dependencies group across 1 directory with 3 updates (#147)
# [cala release v0.10.40](https://github.com/GaloyMoney/cala/releases/tag/0.10.40)
### Miscellaneous Tasks
- Bump the all-dependencies group across 1 directory with 3 updates (#145)
- Backport process-compose follow-up fixes from cala (#143)
# [cala release v0.10.39](https://github.com/GaloyMoney/cala/releases/tag/0.10.39)
### Miscellaneous Tasks
- Replace docker-compose with nix process-compose for dev deps (#140)
# [cala release v0.10.38](https://github.com/GaloyMoney/cala/releases/tag/0.10.38)
### Miscellaneous Tasks
- Bump the all-dependencies group with 2 updates (#139)
# [cala release v0.10.37](https://github.com/GaloyMoney/cala/releases/tag/0.10.37)
### Bug Fixes
- Direction-aware NULL fallback in cursor condition for nullable sort columns (#137)
### Features
- Nullable column attribute for non-Option<T> Rust types (#138)
# [cala release v0.10.36](https://github.com/GaloyMoney/cala/releases/tag/0.10.36)
### Miscellaneous Tasks
- Bump the all-dependencies group with 5 updates (#136)
- Update dependabot policy (#135)
# [cala release v0.10.35](https://github.com/GaloyMoney/cala/releases/tag/0.10.35)
### Bug Fixes
- Use IS NOT DISTINCT FROM for Option column filters (#127)
### Features
- Add cascading soft-delete for nested entities (#122)
### Miscellaneous Tasks
- Bump uuid from 1.23.0 to 1.23.1 (#124)
- Bump tokio from 1.51.1 to 1.52.1 (#125)
# [cala release v0.10.34](https://github.com/GaloyMoney/cala/releases/tag/0.10.34)
### Bug Fixes
- Replace cachix with magic-nix-cache-action (#120)
### Miscellaneous Tasks
- Make entity events iterator Clone
- Bump async-graphql from 8.0.0-rc.3 to 8.0.0-rc.4 (#104)
- Bump tokio from 1.50.0 to 1.51.1 (#121)
- Bump uuid from 1.22.0 to 1.23.0 (#116)
### Testing
- Add test showing plain async fn mutations are visible to caller
# [cala release v0.10.33](https://github.com/GaloyMoney/cala/releases/tag/0.10.33)
### Refactor
- Use singular entity names for Cursor types (#117)
# [cala release v0.10.32](https://github.com/GaloyMoney/cala/releases/tag/0.10.32)
### Refactor
- Use singular entity names for SortBy and Filters types (#115)
# [cala release v0.10.31](https://github.com/GaloyMoney/cala/releases/tag/0.10.31)
### Features
- Add sleep_coalesce for collapsing housekeeping wake-ups (#114)
# [cala release v0.10.30](https://github.com/GaloyMoney/cala/releases/tag/0.10.30)
### Features
- Make entity IDs their own GraphQL scalars (#113)
# [cala release v0.10.29](https://github.com/GaloyMoney/cala/releases/tag/0.10.29)
### Refactor
- Remove set_time, reset_to, and clear_pending_wakes (#112)
- Address PR #108 review feedback (#111)
# [cala release v0.10.28](https://github.com/GaloyMoney/cala/releases/tag/0.10.28)
### Refactor
- Remove auto_advance mode (#108)
- Centralize database types and fix doc typos (#106)
# [cala release v0.10.27](https://github.com/GaloyMoney/cala/releases/tag/0.10.27)
### Bug Fixes
- Return Vec<String> from new_event_types() for sqlx query! compatibility
### Features
- Add event_type() method to EsEvent trait
# [cala release v0.10.26](https://github.com/GaloyMoney/cala/releases/tag/0.10.26)
### Features
- Add post_hydrate_hook support to EsRepo derive macro (#102)
### Miscellaneous Tasks
- Bump pin-project from 1.1.10 to 1.1.11 (#95)
- Bump quote from 1.0.44 to 1.0.45 (#97)
- Bump tokio from 1.49.0 to 1.50.0 (#98)
- Bump uuid from 1.21.0 to 1.22.0 (#101)
### Refactor
- Named parameters for idempotency_guard! macro (#103)
# [cala release v0.10.25](https://github.com/GaloyMoney/cala/releases/tag/0.10.25)
### Bug Fixes
- Rename internal generic 'E' to '__EsErr' to avoid conflicts (#100)
# [cala release v0.10.24](https://github.com/GaloyMoney/cala/releases/tag/0.10.24)
### Bug Fixes
- Resolve generic nested repo error types without generics… (#99)
# [cala release v0.10.23](https://github.com/GaloyMoney/cala/releases/tag/0.10.23)
### Bug Fixes
- Fmt
### Features
- Prefer Display over Debug for NotFound error values
# [cala release v0.10.22](https://github.com/GaloyMoney/cala/releases/tag/0.10.22)
### Features
- Column enum in FindError::NotFound for granular pattern matching (#96)
# [cala release v0.10.21](https://github.com/GaloyMoney/cala/releases/tag/0.10.21)
### Refactor
- [**breaking**] Replace monolithic EsRepoError with per-repo per-operation … (#93)
# [cala release v0.10.20](https://github.com/GaloyMoney/cala/releases/tag/0.10.20)
### Bug Fixes
- Add Cargo.lock to work with crane
### Features
- Soft without queries (#92)
# [cala release v0.10.19](https://github.com/GaloyMoney/cala/releases/tag/0.10.19)
### Features
- Selective list_for(by(...)) syntax (#87)
# [cala release v0.10.18](https://github.com/GaloyMoney/cala/releases/tag/0.10.18)
### Miscellaneous Tasks
- Upgrade async-graphql to 8.0.0-rc.3 (#85)
# [cala release v0.10.17](https://github.com/GaloyMoney/cala/releases/tag/0.10.17)
### Bug Fixes
- Retry database connection in setup-db
- Handle custom accessors correctly in batch operations
# [cala release v0.10.16](https://github.com/GaloyMoney/cala/releases/tag/0.10.16)
### Features
- Update_all (#84)
# [cala release v0.10.15](https://github.com/GaloyMoney/cala/releases/tag/0.10.15)
### Features
- Multi filter (#83)
### Miscellaneous Tasks
- Update convert_case requirement from 0.10 to 0.11 (#81)
# [cala release v0.10.14](https://github.com/GaloyMoney/cala/releases/tag/0.10.14)
### Bug Fixes
- Use crate attribute for graphql feature
### Miscellaneous Tasks
- Bump async-graphql
# [cala release v0.10.13](https://github.com/GaloyMoney/cala/releases/tag/0.10.13)
### Miscellaneous Tasks
- Clock for non op fns (#80)
# [cala release v0.10.12](https://github.com/GaloyMoney/cala/releases/tag/0.10.12)
### Miscellaneous Tasks
- Bump deps (#79)
# [cala release v0.10.11](https://github.com/GaloyMoney/cala/releases/tag/0.10.11)
### Miscellaneous Tasks
- Serde support for artificial clock config (#78)
- Add today fn
# [cala release v0.10.10](https://github.com/GaloyMoney/cala/releases/tag/0.10.10)
### Miscellaneous Tasks
- Use artificial_now to reduce logic (#77)
# [cala release v0.10.9](https://github.com/GaloyMoney/cala/releases/tag/0.10.9)
### Bug Fixes
- Spelling
### Features
- More advanced clock implementation (#76)
### Miscellaneous Tasks
- Bump flake (#75)
# [cala release v0.10.8](https://github.com/GaloyMoney/cala/releases/tag/0.10.8)
### Bug Fixes
- Remove unsupported Into for operations
# [cala release v0.10.7](https://github.com/GaloyMoney/cala/releases/tag/0.10.7)
### Bug Fixes
- Add use stmt
### Miscellaneous Tasks
- Always expose TracingContext struct
# [cala release v0.10.6](https://github.com/GaloyMoney/cala/releases/tag/0.10.6)
### Documentation
- More extensive docs on hooks (#74)
### Miscellaneous Tasks
- Add error field in traces for better navigation (#70)
- Add pre / post commit hooks to DbOp (#71)
- Update convert_case requirement from 0.9 to 0.10 (#65)
- Update darling requirement from 0.21 to 0.23 (#69)
- Remove unused file (#66)
- Remove multilingual field (#67)
- Update convert_case requirement from 0.8 to 0.9 (#63)
### Refactor
- [**breaking**] Rename Ignored -> AlreadyApplied (#73)
- [**breaking**] Update handling of time in AtomicOperation trait (#72)
# [cala release v0.10.5](https://github.com/GaloyMoney/cala/releases/tag/0.10.5)
### Refactor
- Use explicit id name in tracing (#64)
# [cala release v0.10.4](https://github.com/GaloyMoney/cala/releases/tag/0.10.4)
### Documentation
- Fix idempotency chapter indentation
### Miscellaneous Tasks
- Trace fine tuning (#62)
# [cala release v0.10.3](https://github.com/GaloyMoney/cala/releases/tag/0.10.3)
### Miscellaneous Tasks
- Fix instrumentation for retry (#61)
# [cala release v0.10.2](https://github.com/GaloyMoney/cala/releases/tag/0.10.2)
# [cala release v0.10.1](https://github.com/GaloyMoney/cala/releases/tag/0.10.1)
### Miscellaneous Tasks
- More iteration on otel (#59)
# [cala release v0.10.0](https://github.com/GaloyMoney/cala/releases/tag/0.10.0)
### Features
- Adding instrumentation (#57)
# [cala release v0.9.5](https://github.com/GaloyMoney/cala/releases/tag/0.9.5)
### Miscellaneous Tasks
- Upgrade deps (#58)
# [cala release v0.9.4](https://github.com/GaloyMoney/cala/releases/tag/0.9.4)
### Miscellaneous Tasks
- Expose TracingContext (#55)
# [cala release v0.9.3](https://github.com/GaloyMoney/cala/releases/tag/0.9.3)
### Miscellaneous Tasks
- Making simulation config mandatory (#52)
# [cala release v0.9.2](https://github.com/GaloyMoney/cala/releases/tag/0.9.2)
### Miscellaneous Tasks
- Add len_new
# [cala release v0.9.1](https://github.com/GaloyMoney/cala/releases/tag/0.9.1)
### Documentation
- Bump version in book / README
### Miscellaneous Tasks
- Add `find_map` functions to Nested (#49)
# [cala release v0.9.0](https://github.com/GaloyMoney/cala/releases/tag/0.9.0)
### Miscellaneous Tasks
- Bump deps in book
- Declare crate for serde
- Declare crate for schemars feature
# [cala release v0.8.1](https://github.com/GaloyMoney/cala/releases/tag/0.8.1)
### Miscellaneous Tasks
- Widen version requirements for sqlx
# [cala release v0.8.0](https://github.com/GaloyMoney/cala/releases/tag/0.8.0)
### Refactor
- Rename tracing feature to tracing-context
# [cala release v0.7.19](https://github.com/GaloyMoney/cala/releases/tag/0.7.19)
### Miscellaneous Tasks
- Update darling requirement from 0.20 to 0.21 (#46)
- Add iter_persisted in nested (#47)
# [cala release v0.7.18](https://github.com/GaloyMoney/cala/releases/tag/0.7.18)
### Documentation
- Fix readme events table
### Miscellaneous Tasks
- Remove Cargo.lock (#37)
### Performance
- Add persist_event_context to disable sending redundant data
# [cala release v0.7.17](https://github.com/GaloyMoney/cala/releases/tag/0.7.17)
### Bug Fixes
- Strip alias in es_query order by columns
### Miscellaneous Tasks
- Fmt
# [cala release v0.7.16](https://github.com/GaloyMoney/cala/releases/tag/0.7.16)
### Features
- Load context (#36)
# [cala release v0.7.15](https://github.com/GaloyMoney/cala/releases/tag/0.7.15)
### Miscellaneous Tasks
- Add tracing to event-context (#35)
# [cala release v0.7.14](https://github.com/GaloyMoney/cala/releases/tag/0.7.14)
### Miscellaneous Tasks
- Add tracing data to event context (#34)
# [cala release v0.7.13](https://github.com/GaloyMoney/cala/releases/tag/0.7.13)
### Documentation
- Small re-wording for entity_id
### Features
- Event context (#33)
### Miscellaneous Tasks
- Bump flake
- Add sim-time
- Document sim-time
- One_time_executor details
### Refactor
- SimTimeConfig -> SimulationConfig
# [cala release v0.7.12](https://github.com/GaloyMoney/cala/releases/tag/0.7.12)
### Miscellaneous Tasks
- One_time_executor and operation
# [cala release v0.7.11](https://github.com/GaloyMoney/cala/releases/tag/0.7.11)
### Bug Fixes
- Make #[es_repo(nested)] work under async_trait
# [cala release v0.7.10](https://github.com/GaloyMoney/cala/releases/tag/0.7.10)
### Bug Fixes
- Use <#ty> to handle generic children in nested.rs
# [cala release v0.7.9](https://github.com/GaloyMoney/cala/releases/tag/0.7.9)
### Miscellaneous Tasks
- Use AsRef<str> for String columns
- Support AsRef<str> in find_by
# [cala release v0.7.8](https://github.com/GaloyMoney/cala/releases/tag/0.7.8)
### Bug Fixes
- Declare op as <'static>
# [cala release v0.7.7](https://github.com/GaloyMoney/cala/releases/tag/0.7.7)
### Miscellaneous Tasks
- Add tx_mut fn to DbOp (#30)
# [cala release v0.7.6](https://github.com/GaloyMoney/cala/releases/tag/0.7.6)
### Miscellaneous Tasks
- Bump flake
# [cala release v0.7.5](https://github.com/GaloyMoney/cala/releases/tag/0.7.5)
### Miscellaneous Tasks
- Add internals to repo-list-for-filter
- Update doc links and fix license file name (#28)
### Refactor
- Find_many -> list_for_filter (#29)
# [cala release v0.7.4](https://github.com/GaloyMoney/cala/releases/tag/0.7.4)
### Miscellaneous Tasks
- #![forbid(unsafe_code)]
- Update README
# [cala release v0.7.3](https://github.com/GaloyMoney/cala/releases/tag/0.7.3)
### Bug Fixes
- README private child struct
### Miscellaneous Tasks
- Reset mdbook-test profile in ci
- Remove holucination from readme
- Add event module docs (#25)
- Readme
### Performance
- Use uuid v7 (#27)
# [cala release v0.7.2](https://github.com/GaloyMoney/cala/releases/tag/0.7.2)
### Miscellaneous Tasks
- Bump flake