Cross-vendor delta pass over the fix cluster (one bounded round,
adjudicated): four confirmed repairs and one reverted over-reach —
- Struct leaves in :map values (Ash.CiString, custom Derive structs)
crashed the canonical encoder with a value-echoing
Protocol.UndefinedError (they are maps; the sorted-fragments path
Enum-reduced them). Structs with a Jason encoder now encode as their
JSON leaf via the tuple form; encoder-less structs soft-fail to the
original value for the pre-wire gates. Red test with a CiString leaf.
- Numeric map keys soft-failed, the raw map slipped the encode gate
(Jason accepts them), and a map property reached a 26.10 wire that
rejects it — canonical_key now mirrors Jason's String.Chars keys.
Nil elements render as JSON null both inside nested arrays and as
raw null in {\:array,\:map} lists.
- An EMPTY to: list on a destination-only-multitenant edge wrongly
failed :tenant_required (the documented no-op contract says
succeed). Short-circuit before tenant resolution, create + destroy.
- The sensitive-must-be-in-replicant-skip compile verifier REVERTED:
a graph-only sensitive attribute with no arriving source column is a
valid config the verifier falsely rejected (not statically
decidable which columns arrive). The runtime :sensitive_plaintext
halt remains the enforcement; docs + tests re-scoped. The
data-layer verifier stays (no false positive found).
- handle_snapshot_complete returns the EFFECTIVE durable watermark
(the stored one on a no-op), never an LSN the checkpoint does not
hold.
Docs current for 1.2.0: CHANGELOG release entry; upgrading guide's
1.1.x -> 1.2.0 section (arcadic floor, temporal both-side wrap, the
:map JSON representation + legacy-equality fine print, edge per-
endpoint scoping, verifier changes); usage-rules rewritten for the
map representation (nesting cap gone) and per-endpoint edge tenancy;
troubleshooting gains the :invalid_params and legacy-map-equality
entries; README status/deps/ecosystem (ash_hooks/ash_onetime
cross-link); AGENTS status names 1.2.0; tour Livebook pins ~> 1.2
and the 26.10.2 image, and EVERY cell was executed green against the
live ephemeral 26.10.2 server (20/20 cells, cell-extraction runner
threading bindings). mix docs builds with ZERO warnings.
Gates: mix quality clean; 593 unit + 883 live tests green on
ArcadeDB 26.10.2.