v0.16.0
Minor Changes
-
Axis 3 — declare write-conflict behaviour in the schema (new). A model can now state what happens when a commit collides with a foreign claim or a stale snapshot — per committer kind (
user/agent/system) — right next to its fields, using the sameoverwrite | reject | notifyvocabulary as theonStalewrite guard. It is a third axis, orthogonal topolicy(read access) andgroups(delta routing).-
conflictonmodel()— a plain, serializable disposition map. Pure data, so it round-trips through the schema registry to the server; the generic engine interprets it at the commit chokepoint (no per-model logic in the engine).// "a human's edit always wins (never blocked); an agent yields" conflict: { user: 'overwrite', agent: 'reject' } -
Composable authoring helpers (new, from
@abloatai/ablo/schema) — disposition functions plus acn/cx-style combinator, so conflict policy reads like the rest of the DSL (relation.belongsTo()) and like modern config (plugins: [admin(), …]):import { coordination, humansOverwrite, agentsReject } from '@abloatai/ablo/schema'; conflict: coordination(humansOverwrite(), agentsReject()); // → { user: 'overwrite', agent: 'reject' }Exports:
coordination,humansOverwrite/humansReject/humansNotify,agentsOverwrite/agentsReject/agentsNotify,systemOverwrite/systemReject/systemNotify, and theConflictRuletype. -
An omitted committer kind falls through to the engine default (reject; honor
onStale: 'notify'), so this is fully additive — existing schemas are unchanged. New public typesConflictAxis(alsoAblo.Conflict.Axis) and theinterpretConflictAxisinterpreter are exported for custom policy composition.
-
-
First-party shared schema for ephemeral keys (new).
mintUserSessionKeynow acceptsschemaProjectId+schemaOwnerOrgId, binding the mintedek_to a schema owner-org + project so schema resolves org-independently (one schema serves all of an integrator’s end-user orgs) while data stays scoped toorganizationId. Requires thesk_to carryephemeral:mint-any-org; omit both for the existing per-org (BYO) behaviour.