[0.3.0] - 2026-05-08
Breaking
NoUnscopedRepoInsideAppLib::allowed_schemasrenamed to:excluded_schemas. Update your.credo.exsaccordingly.
Added
NoUnscopedRepoInsideAppLib: new:excluded_pathsoption — list of path prefixes (e.g.["lib/mix/tasks"]) that are skipped entirely by the check.
[0.2.0] - 2026-05-08
Breaking
EctoContext.Check.ForceScopedremoved. Replace with two more focused checks:EctoContext.Check.Design.NoUnscopedRepoInsideAppLib— covers all oflib/[app]/uniformly (ecto_context and non-ecto_context modules alike), with context-aware error messages. Supportsexcluded_schemasto suppress violations per-function when a schema is referenced in the function head or body.EctoContext.Check.Design.NoRepoOutsideAppLib— absolute Repo ban inlib/outsidelib/[app]/(web layer, mix tasks, other support code).
EctoContext.Check.DeprecateRepoTransactionrenamed toEctoContext.Check.Warning.DeprecateRepoTransaction(moved into theWarningnamespace).
[0.1.5] - 2026-05-08
Added
EctoContext.Check.ForceScoped— optional Credo check (requires{:credo, "~> 1.7"}) that enforces use of generated scoped functions in ecto_context modules. Bans direct Repo calls for operations ecto_context covers (all,get,get!,get_by,get_by!,insert,insert!,update,update!,delete,delete!,aggregate); allows everything else (transact,delete_all,insert_all,update_all, …). Repos are configured viarepos: [MyApp.Repo]or auto-detected from:ecto_repos.EctoContext.Check.DeprecateRepoTransaction— flagsRepo.transaction/2project-wide and points toRepo.transact/2, the official Ecto replacement.
[0.1.4] - 2026-04-30
Added
get_byandget_by!now support:order_byand:limitoptions, enabling "fetch first matching by ordering" patterns without a custom:queryfunction
[0.1.3] - 2026-04-30
Fixed
- README and
usage-rules.mdnow correctly documentget,get!,get_by,get_by!opts (:preload, :select, :query) usage-rules.mdclarifies that:queryis always a 1-arity function; separates list-family opts from get-family opts
[0.1.2] - 2026-04-30
Added
get,get!,get_by,get_by!now support:selectand:queryoptions- All four get-family functions now accept the same uniform option set:
:preload,:select,:query
[0.1.1] - 2026-04-17
Added
usage-rules.md— focused LLM-oriented rules file ships with the hex package. Covers return-value shapes,scope/2vspermission/3, the:getunauthorized-collapses-to-nil trap, and common API pitfalls.- README section pointing AI agents at
deps/ecto_context/usage-rules.md.
[0.1.0] - 2026-04-13
Added
ecto_context/2macro for generating scoped CRUD functions- 16 generated functions: list, list_by, list_for, get, get!, get_by, get_by!, create, create_for, update, delete, change, count, paginate, subscribe, broadcast
EctoContext.Query— runtime query helpersEctoContext.Validate— runtime validation helpersEctoContext.Paginator— pagination struct