Limited offer 60% off on your first year, for new customers. Applied automatically at checkout. See pricing
Releases

0.5.0

November 02, 2026

Added

  • New Field::HasOne for has_one associations.
  • A JSON:API for repositories at /uchi/api/:resource, with pagination, search, and sorting. It uses the same authentication as the admin UI by default; override Uchi::Api::ApplicationController to authenticate it differently.
  • Repository.for_controller_name returns the repository with the given controller_name.
  • Repository#find_all accepts an array of sort orders, applied in order.

Fixed

  • The close button on toasts, e.g. flash messages, now dismisses the toast.
  • Field::BelongsTo is no longer sortable by default. Sorting by it failed with an SQL error, since the association isn't a column. Pass a lambda to sortable to sort by a column in the associated table.
  • ActionResponse#turbo_stream yields a Turbo Stream builder to its block, as documented. Calling turbo_stream.remove(record) inside the block previously raised NameError.
  • Field#reader accepts a block, e.g. reader { |record, field_name| ... }. It previously raised ArgumentError.