Skip to main content
In Lithtrix, agent memory is append-only underneath — PUT and DELETE create ledger versions; tombstone deletes preserve history while clients still read latest-live. The public /v1/memory API is unchanged for existing clients (lithtrix-langgraph 0.2.0, MCP memory tools). You do not need a new package to benefit from the ledger — behaviour you already rely on stays the same at the HTTP boundary. There is no public version-list endpoint in this release. History lives in the server-side ledger; billing counts latest-live bytes only (ledger history does not add storage charges).

Cold-run — ledger underneath (iter 171)

PUT appends a version

Every successful PUT /v1/memory/{key} appends a new ledger row. Re-PUTting the same key creates a new version; the client still reads the latest value.

GET returns latest-live only

GET /v1/memory/{key} returns the current live value — not prior versions.

DELETE tombstones (history retained)

DELETE /v1/memory/{key} tombstones the key: subsequent GET returns 404 MEMORY_KEY_NOT_FOUND, but the server retains ledger history. Clients see absence; operators can audit versions server-side.

LangGraph / MCP — no client change

MCP exposes lithtrix_memory_set, lithtrix_memory_get, lithtrix_memory_search, and lithtrix_memory_context only — no MCP delete tool (set / get / search / context per design package §4.2). Tombstone DELETE is available via:
  • REST: DELETE /v1/memory/{key} (Bearer)
  • LangGraph: LithtrixStore.put(namespace, key, None) (maps to REST DELETE)
After DELETE, GET behaves as absent (404 MEMORY_KEY_NOT_FOUND) while ledger history is retained server-side. See LangGraph integration and Memory API reference.

Cold-run — derived_from (iter 172)

Optional on PUT body — writer-declared provenance that this value was derived from an inclusive-inclusive version range on the same key (or another key’s ledger versions, by convention you document locally).
Primary observations omit the field (NULL in ledger).

Cold-run — consolidation policy (iter 172)

A passport-attested artifact: the agent declares how it forgets (compression, weighting, fade rules). Lithtrix records the policy — there is no consolidation engine in this release.

First amend flow

  1. Mint challenge (no Bearer):
  1. Sign lithtrix.consolidation.amend.v1 over the canonical UTF-8 bytes (see GET /v1/capabilitiesconsolidation_policy.amend_signature_scheme and request body schema).
  2. Amend with root key:
Before the first amend, owner GET returns 404 CONSOLIDATION_POLICY_NOT_FOUND. Amendment requires an open custody epoch (same discipline as covenant amend). Prior rows are superseded — append-only history, not in-place params update.

Teaching errors

Full tables: Memory API, Error codes, and GET /v1/capabilities.

Live verification (operators)

Engineering ships arc36_live_verify.py — see the Arc 36 runbook in the cowork engineering folder. Ops records deploy SHA + timestamp; do not treat Builder closeout alone as live PASS.