12 February, 2026
This release introduces model extensions and fixes several issues with aggregate filter conditions in computed fields.
Model Extensions
You can now extend built-in models like Identity with additional fields and actions using the extend model keyword. This lets you add custom data and behaviour to built-in models without redefining them.
extend model Identity {
fields {
preferredName Text?
department Text?
}
actions {
get getIdentity(id)
update updateIdentity(id) with (preferredName, department)
}
@permission(expression: ctx.isAuthenticated, actions: [get, update])
}Extended fields must be optional (?) or have a @default value, since built-in model records are managed by the system. Learn more about the Identity model.
Computed Field Division Fix
Computed fields that use division now correctly cast the numerator to a numeric type, preventing integer division from silently truncating decimal results. For example, an expression like order.subtotal / order.quantity now returns the expected decimal value.
Aggregate Filter Fixes
Several fixes improve the reliability of aggregate filter conditions in computed fields:
- Fixed incorrect table references in multi-hop aggregate filter conditions (e.g. filtering through multiple relationships)
- Fixed boolean field handling in aggregate filter conditions on the root entity
- Fixed entity and ID equality comparisons in aggregate filter conditions
These fixes ensure that expressions like COUNTIF(warehouse.items, warehouse.items.isActive) and multi-relationship filters work correctly.
Fixes and Improvements
For a full list of fixes and improvements, check out our GitHub releases page (opens in a new tab).
For any issues or feedback, please contact us at help@keel.so.
Thank you for using Keel!