X Article Draft: Zaxy 2.5.0

Zaxy 2.5 release header

Zaxy 2.5.0 ships a general memory export contract: a product-agnostic way to pull a session's memory out as a cited, portable bundle that any consumer can verify — and, if you choose, reveal only a slice of, or push to wherever you want. Zaxy never has to know who is asking.

The short version: agent memory is only as useful as it is movable and trustworthy. Most memory is trapped inside a vendor runtime, and even when you can get it out, you usually can't prove what it is or hand over just the relevant part. 2.5 makes export a first-class, specified contract — built so the thing on the other end can be a dashboard, an auditor, another agent, or a "second brain" product, without Zaxy taking a dependency on any of them.

What shipped

A contract in four layers, all converging on one projection path so the bytes are identical no matter which surface you use:

It builds directly on the 2.4 line — the zaxy.portable signed-bundle format (post-quantum ML-DSA-65 signatures, a domain-separated Merkle tree) — and wraps it in the contract that was missing around it.

Why it matters

The interesting problem with agent memory isn't storage; it's a transfer format that is authentic (cited, optionally signed), minimally disclosed (prove a slice, not the whole history), and decoupled (the producer doesn't need to know the consumer). That's the shape a W3C community group and recent "portable agent memory" research are converging on, and Zaxy already had the right substrate: an immutable, hash-chained event log where provenance is the product.

This is deliberately not a step toward Zaxy becoming a "second brain." Zaxy stays auditable agent memory; the export contract is exactly the seam that lets a brain-style product — or anything else — consume Zaxy as a verifiable source, without Zaxy ingesting unverifiable bulk data and diluting what makes it trustworthy.

The honest caveats

Try it

The contract is specified in docs/export-contract.md — entry schema, selector, the three bundle shapes, both surfaces, and the versioning policy a consumer can pin against.

# Pull an unsigned, cited bundle for a session.
zaxy export --out bundle.json --eventloom-path .eventloom --session-id agent-1

# Reveal only the goal entries, with proofs, from a signed bundle.
zaxy export-disclose bundle.json --grains event --kinds goal.created --out subset.json
zaxy verify-export-subset subset.json --expect-public-key <hex>

Memory you can't move is lock-in. Memory you can move but can't verify is a liability. 2.5 is the format in between — and we'd genuinely welcome review of the signed path before anyone leans on it.