All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
v0.17.0 (2026-03-29)
Features:
manifest: add valibot entries to JSON manifest by @Torkan
codegen: add typed sort fields with SortString utility type and array support by @Torkan
codegen: add isNil operator, expand aggregate filters, generate filter field arrays by @Torkan
valibot by @directormac
add valibot to resolver and orchestrator by @directormac
valibot generators by @directormac
Bug Fixes:
codegen: remove dead valibot import from generated RPC file by @Torkan
valibot: namespace export harcoded suffix by @directormac
valibot: piped constraints by @directormac
rpc: use load-through format for resource-returning calculations by @Torkan
codegen: distinguish resource from typed struct in return type classification by @Torkan
test: scope typed query const assertion to Typed Queries section by @Torkan
codegen: unwrap NewTypes before classifying return types for field selection by Mike Wilson
delete vite/inertia combo as SSR didnt really work by Victor Batarse
in prod if there was no manifest.json assets.deploy would crash with vite by Victor Batarse
add csrf headers in all layouts by Victor Batarse
colocated hooks on non react version by Victor Batarse
on non-jsx framework caused crash by Victor Batarse
esbuild versions CSS issues by Victor Batarse
v0.16.0 (2026-03-23)
Breaking Changes:
import_into_generated and typed_controller_import_into_generated file paths are now project-root-relative (e.g., "assets/js/hooks.ts") instead of JS-relative import paths (e.g., "./hooks")
Features:
codegen: exclude calculations with field?: false from generated types by @Torkan
typed-channel: auto-derive payload types from calculation transforms by @Torkan
rpc: verify actions and relationship read actions are public? by @Torkan
rpc: add machine-readable JSON manifest generation by @Torkan
typed-channel: detect payload type name conflicts across channels by @Torkan
typed-channel: add config accessors and orchestrator integration by @Torkan
typed-channel: add DSL, verifier, and codegen for typed channel event subscriptions by @Torkan
add typed_controller_base_path config for route URL prefixing by @Torkan
add HTTP verb shortcuts and positional method arg to typed controller DSL by @Torkan
add controller namespace support and simplify codegen orchestration by @Torkan
add multi-file codegen architecture and typed controller enhancements by @Torkan
Bug Fixes:
test: use domain: nil for inline test resource not registered in a domain by @Torkan
bump minimum ash dep to >= 3.21.1 for field? support by @Torkan
rpc: unwrap Reactor.Error.Invalid.RunStepError to inner error by @Torkan
test: replace length/1 comparisons with empty list checks by @Torkan
test: use CodegenTestHelper instead of removed Rpc.Codegen API by @Torkan
codegen: generate Array<Record<string, any>> for {:array, :map} return types by @barnabasJ (#56)
codegen: prefix unused actionName param with underscore when hooks disabled by @Torkan
test: add returns type to item_deleted publication to fix compile warning by @Torkan
codegen: resolve relative import paths correctly for parent directories by @Torkan
rpc: apply output formatter to channel field in channel functions by @Torkan
test: redirect typed_channels_output_file to tmp dir in codegen tests by @Torkan
typed-controller: default route method to nil instead of :get by @Torkan
use field formatter for channel handler fields by @Torkan
v0.15.3 (2026-02-21)
Bug Fixes:
- sort RPC codegen output for deterministic TypeScript generation by @Torkan
v0.15.2 (2026-02-21)
Bug Fixes:
- sort typed controller output for deterministic codegen by @Torkan
v0.15.1 (2026-02-21)
Bug Fixes:
restore method/module_name in spark formatter locals_without_parens by @Torkan
add typed_controller_path_params_style config option by @Torkan
codegen: check typescript_type_name before unwrapping NewTypes (#52) by @Torkan
v0.15.0 (2026-02-19)
Features:
add typed_controller_mode config for paths_only generation by @Torkan
generate query params and typed path helpers for TypedController routes by @Torkan
validate that path params have matching DSL arguments by @Torkan
typed-controller: validate route and argument names for TypeScript compatibility by @Torkan
add TypedController as standalone Spark DSL with argument extraction and type casting by @Torkan
controller-resource: normalize camelCase request params to snake_case by @Torkan
codegen: integrate controller resource route generation into mix task by @Torkan
add TypeScript route codegen with router introspection by @Torkan
add ControllerResource DSL extension with controller generation by @Torkan
Bug Fixes:
codegen: check typescript_type_name before unwrapping NewTypes (#52) by @Torkan
prevent policy breakdown leak in Forbidden.Policy error responses by @Torkan
v0.14.4 (2026-02-14)
Bug Fixes:
rpc: add JSON-safe error serialization for policy breakdowns by @Torkan
zod: topologically sort resource schemas to fix declaration order by @Torkan
v0.14.3 (2026-02-11)
Bug Fixes:
- codegen: scope always_regenerate to only apply with --dev flag by @Torkan
v0.14.2 (2026-02-10)
Bug Fixes:
rpc: ensure error responses are JSON-serializable by @Torkan
codegen: only export Config type for actions with optional pagination by @Torkan
v0.14.1 (2026-02-07)
Bug Fixes:
- codegen: skip file writes when generated content is unchanged by @Torkan
v0.14.0 (2026-02-06)
Features:
- codegen: add
always_regenerateconfig to skip diff check by @Torkan
Bug Fixes:
- handle list input in ErrorBuilder.build_error_response/1 by Oliver Severin Mulelid-Tynes (#48)
v0.13.2 (2026-02-04)
Bug Fixes:
- codegen: use field formatter more consistently by @Torkan
v0.13.1 (2026-02-04)
Bug Fixes:
codegen: use Mix.raise for clearer error output by @Torkan
verifiers: validate union member names for TypeScript compatibility by @Torkan
verifiers: skip field name validation when mapping exists by @Torkan
v0.13.0 (2026-02-01)
Features:
config: add developer experience configuration options by @Torkan
mix: handle multi-file output and manifest generation by @Torkan
codegen: add multi-file namespace output support by @Torkan
codegen: add markdown manifest generator by @Torkan
codegen: add JSDoc generator with configurable tags by @Torkan
codegen: add namespace resolution and domain grouping by @Torkan
dsl: add namespace, description, deprecated, and see options by @Torkan
Bug Fixes:
codegen: fix TypeScript inference for NewType-wrapped unions by @Torkan
codegen: unwrap NewTypes in type discovery to find union members by @Torkan
v0.12.1 (2026-01-26)
Bug Fixes:
typed-queries: use satisfies for type-safe field constants by @Torkan
rpc: make tenant optional for non-multitenancy resources by @Torkan
don't expose exception messages for unknown errors by @zachdaniel
v0.12.0 (2026-01-17)
Features:
rpc: generate restricted schemas for allowed_loads actions by @Torkan
rpc: support first aggregates returning embedded resources and unions by @Torkan
rpc: add allowed_loads and denied_loads options for rpc_action by @Torkan
rpc: add enable_filter? and enable_sort? options for rpc_action by @Torkan
v0.11.6 (2026-01-13)
Bug Fixes:
- rpc: prioritize direct headers and fetchOptions over lifecycle hook config by @Torkan
v0.11.5 (2026-01-08)
Bug Fixes:
- codegen: discover embedded resources used as direct action arguments by @Torkan
v0.11.4 (2025-12-19)
Bug Fixes:
- install: use find_module to locate router for custom module names by @Torkan
v0.11.3 (2025-12-17)
Bug Fixes:
- types: add Duration struct support with ISO 8601 serialization by @Torkan
v0.11.2 (2025-12-09)
Bug Fixes:
- rpc: simplify field mapping module selection with ActionIntrospection by @Torkan
v0.11.1 (2025-12-09)
Bug Fixes:
- rpc: preserve empty arrays in JSON serialization (fixes #32) by @Torkan
v0.11.0 (2025-12-09)
Breaking changes:
- All field mapping dsls and callbacks now require strings instead of atoms.
- Fields requested from calculations without arguments no longer need to be wrapped in
{fields: [...]}
Features:
add VerifyActionTypes and VerifyUniqueInputFieldNames verifiers by @Torkan
add ResourceFields helper and extend Introspection by @Torkan
add FieldSelector for unified type-driven field selection by @Torkan
add ValueFormatter for unified type-aware value formatting by @Torkan
Bug Fixes:
remove underscore in Zod schema name generation by @Torkan
cast struct inputs fully using Ash.Type by @zachdaniel
handle private arguments in action_inputs lookup by @Torkan
don't include private arguments in typescript codegen by @zachdaniel
v0.10.2 (2025-12-05)
Bug Fixes:
- codegen: use field formatters for generated TypeScript config interfaces & rename hardcoded primaryKey fields to identity @Torkan
v0.10.1 (2025-12-04)
Bug Fixes:
rpc: consolidate field formatting and format error field names for by @Torkan
rpc: flatten multiple error responses by removing nested wrapper by @Torkan
test: generate TypeScript inline instead of reading from file by @Torkan
v0.10.0 (2025-12-04)
Breaking Changes:
primaryKey input field for update & destroy rpc actions are now replaced by the more flexible identities-field
Features:
identities: add compile-time identity verification by @Torkan
identities: add identity-based record lookup for update/destroy actions by @Torkan
Bug Fixes:
- codegen: raise error instead of System.halt on generation failure by @Torkan
v0.9.1 (2025-12-01)
Bug Fixes:
- struct-args: support Ash resources as struct action arguments by @Torkan
v0.9.0 (2025-11-30)
Features:
codegen: generate TypeScript types for get? and get_by actions by @Torkan
rpc: add compile-time verification for get options by @Torkan
rpc: implement get? and get_by runtime execution by @Torkan
rpc: add get?, get_by, and not_found_error? DSL options by @Torkan
v0.9.0 (2025-11-30)
Features:
codegen: generate TypeScript types for get? and get_by actions by @Torkan
rpc: add compile-time verification for get options by @Torkan
rpc: implement get? and get_by runtime execution by @Torkan
rpc: add get?, get_by, and not_found_error? DSL options by @Torkan
v0.8.4 (2025-11-25)
Bug Fixes:
codegen: support calculation fields in aggregates across all modules by @Torkan
rpc: respect allow_nil_input and require_attributes for input type optionality by @Torkan
support sum aggregates over calculations and discover calculation argument types by Oliver Severin Mulelid-Tynes (#23)
v0.8.3 (2025-11-24)
Bug Fixes:
- improved error message for missing AshTypescript.Resource extension or missing typescript dsl-block
- add closing backticks on the code example for composite type field selection by Jacob Bahn (#21)
v0.8.2 (2025-11-20)
Bug Fixes:
- codegen: export Infer*Result types from generated TypeScript by @Torkan
v0.8.1 (2025-11-20)
Bug Fixes:
test: remove URLs from argsWithFieldConstraints to fix parser issue by @Torkan
codegen: make nullable fields optional and fix spacing in input types by @Torkan
codegen: use get_ts_input_type for argument types in input schemas by @Torkan
Add default boolean values to config getters by zeadhani (#20)
v0.8.0 (2025-11-19)
Features:
- add FieldExtractor module for unified tuple/keyword/map extraction by @Torkan
Bug Fixes:
exclude struct union members with instance_of from primitiveFields by @Torkan
require wrapped format for union inputs with proper validation by @Torkan
add is_primitive_struct? check in result_processor by @Torkan (#17)
Improvements:
preserve TypedStruct instance_of for field name mappings by @Torkan
standardize RPC error structure with vars, path, fields, details by @Torkan
use bulk actions for update/destroy by @zachdaniel (#17)
support
read_actionconfiguration by @zachdaniel (#17)better error handling & struct field selection in RPC by @zachdaniel (#17)
v0.7.1 (2025-11-08)
Bug Fixes:
- add missing resources to typescript_rpc in test setup to fix compile warnings by @Torkan
v0.7.0 (2025-11-08)
Features:
add configurable warnings for RPC resource discovery and references by @Torkan
add resource scanner for embedded resource discovery by @Torkan
v0.6.4 (2025-11-03)
Bug Fixes:
- add reusable action/validation helpers, improve lifecycle hook types by @Torkan
v0.6.3 (2025-11-01)
Bug Fixes:
- use type constraints in zod schema generation by @Torkan
v0.6.2 (2025-10-28)
Bug Fixes:
rpc: make fields parameter optional with proper type inference by @Torkan
rpc: improve type inference for optional fields parameter by @Torkan
rpc: generate optional fields parameter for create/update in TypeScript by @Torkan
rpc: make fields parameter optional for create and update actions by @Torkan
v0.6.1 (2025-10-27)
Bug Fixes:
codegen: deduplicate resources when exposed in multiple domains by @Torkan
codegen: fix mapped field names usage in typed queries by @Torkan
v0.6.0 (2025-10-21)
Features:
rpc: implement lifecycle hooks in TypeScript codegen by @Torkan
rpc: add lifecycle hooks configuration API by @Torkan
codegen: add configurable untyped map type by @Torkan
rpc: add custom error response handler support by @Torkan
rpc: add support for dynamic endpoint configuration via imported TypeScript functions by @Torkan
rpc: add typed query field verification at compile time by @Torkan
add type_mapping_overrides config setting by @Torkan
codegen: warn when resources have extension but missing from domain by @Torkan
Bug Fixes:
- add support for generic actions returning typed struct(s) by @Torkan
v0.5.0 (2025-10-13)
Features:
add action metadata support with field name mapping by @Torkan
add precise pagination type constraints to prevent misuse by @Torkan
add VerifierChecker utility for Spark verifier validation by @Torkan
support typescript_field_names callback in codegen by @Torkan
add map field name validation for custom types by @Torkan
add field_names & argument_names for mapping invalid typescript names to valid ones by @Torkan
Bug Fixes:
apply field name mappings to Zod schemas for all field types by @Torkan
apply field name mappings in RPC request/result processing by @Torkan
apply field name mappings in TypeScript codegen by @Torkan
use mapped field names & argument names in codegen by @Torkan
v0.4.0 (2025-09-29)
Features:
- Properly handle map without constraints, both as input and output. by @Torkan
Bug Fixes:
Add verifier that checks that resources with rpc actions use by @Torkan
reject loading of relationships for resources without AshTypescript.Resource extension. by @Torkan
use __array: true for union types on resource schema by @Torkan
generate correct types for array union attributes. by @Torkan
For generic actions that return an untyped map, remove fields-arg by @Torkan
Improvements:
add unique type_name verifier for AshTypescript.Resource by @Torkan
remove redundant path-tracking & cleanup of code in formatters. by @Torkan
remove redundant cast_input in color_palette.ex by @Torkan
v0.3.3 (2025-09-20)
Improvements:
- run npm install automatically on installation by Zach Daniel
v0.3.2 (2025-09-20)
Bug Fixes:
- change installer config: --react -> --framework react by Torkild Kjevik
v0.3.1 (2025-09-20)
Improvements:
- add igniter install notices. by Torkild Kjevik
v0.3.0 (2025-09-20)
Features:
- add igniter installer by Torkild Kjevik
Improvements:
add rpc routes & basic react setup in installer by Torkild Kjevik
use String.contains? for checking if rpc routes already exist by Torkild Kjevik
Set default config in config.exs by Torkild Kjevik
v0.2.0 (2025-09-17)
Features:
- Add Phoenix Channel support & generation of channel functions. by Torkild Kjevik
Bug Fixes:
- Only send relevant data to the backend. by Torkild Kjevik
Improvements:
prefix socket assigns with
ash_by Torkild KjevikAdd timeout parameter to channel rpc actions. by Torkild Kjevik
v0.1.2 (2025-09-15)
Improvements:
- Use correct casing in dsl docs filenames. by Torkild Kjevik
v0.1.1 (2025-09-15)
Bug Fixes:
Add codegen-callback for ash.codegen. by Torkild Kjevik
update typespec for run_typed_query/4 by Torkild Kjevik
Use correct name for entities in rpc verifier. by Torkild Kjevik
Improvements:
add support for AshPostgres.Ltree type. by Torkild Kjevik
add custom http client support. by Torkild Kjevik
build related issues, update ash by Zach Daniel
v0.1.0 (2025-09-13)
Features:
- Initial feature set