Features:
- Target Neo4j 2026.05 / Cypher 25 / BOLT 6.0 (#236) — moves the data layer onto the
date-versioned Neo4j line viaash_neo4j0.9.0. Queries now run under an explicit
CYPHER 25language selector over BOLT 6.0 — negotiated throughbolty≥ 0.2.0 — rather
than relying on a server default heading for the CYPHER 5 sunset.
Fixes:
- Public
Diffo.Provider.create_instance/1+create_instance!/1(#244) — restores the
generic instance creator to the dispatcher API, symmetric withcreate_place!/2and
create_party!/2; it dispatches on the referenced specification's type
(:serviceSpecification→ the generic Service,:resourceSpecification→ the new generic
Diffo.Provider.ResourceInstanceleaf). Without it, provider-only consumers and the
tutorial livebook had no public way to create a generic instance. Also types the dispatcher
@specs precisely (closed-union creators, an openprojected_recordfor projecting reads)
and clears themix docswarnings from the phantomAsh.Resource.record()type.
Dependencies:
-
Bump
ash_neo4jto0.10.1(#238) — picks up graph-traversal Ash expressions
(traverse/2) and read-timeProjectedTraversal, atomic & bulk writes, typed
(never-raised) data-layer errors, and identity/primary-key uniqueness constraints; plus
the upstream fix for the 0.10.0 atomic-upsert label regression
(ash_neo4j#392) that dropped the
:Place/:Partyfragment label on upserted nodes. Two behaviour shifts are handled
diffo-side: atomic-by-default is disabled for this edge-managing graph domain
(require_atomic_by_default? false, since nearly every action manages edges or runs
non-atomic validations), andDiffo.Type.Dynamicgainsdump_to_embedded/2+
cast_from_embedded/2for ash 3.28's composite embedded casting (#239). Tracksash3.29.Upgrading from 0.8.x: consumers must add
config :ash, :require_atomic_by_default?, false
to their own config — diffo's resources recompile under the consumer's config, and without
it the edge-managing actions raisemust be performed atomically.mix diffo.installand
the livebooks now set this for you. Target Neo4j is now 2026.05 (Cypher 25 / BOLT 6.0).