Errata.
spend $——.———— · the homebuyer’s history
Memory that keeps its corrections — every answer cited, every revision kept, refusal when the history never says.

Field notes — what the substrate rejected, and the workaround beside each

Limit we hitOur workaroundGauntlet
The OpenCypher subset rejects IN, min()/max(), RETURN *, filtering WITH and unbounded *.hand-written Cypher only; the belief head is chosen by a deterministic fold in TypeScript, not by the queryG0/G1
Integer params sent as Bolt Floats are rejected on id fields.neo4j.int() at one choke point (toBoltParams); 53-bit blake2b ids for nodes AND edgesG0
MERGE (n:Label {id}) and two SET clauses are both rejected — only one upsert form is recognized.emit MERGE (n {id}) SET n:Label, n.a = … exactly; edges carry allocated ids in a single comma-joined statementG1
algo.MSpaths with a list sourceValues: "composite parameter only supported as UNWIND input".co-mention expansion deferred by design before the build started; the ask path uses id-pinned UNION arms insteadG1
The driver's manifest Bolt handshake intermittently mis-negotiates (RangeError in its varint read).GraphClient.verify() retries and recreates the driver; the demo path uses the right-directed, id-anchored formG1
Writer-lease demotion on write-idle re-opens SlateDB on the next write — ~200 MB retained per re-open, ratcheting to an OOM kill.lease 120 s (outlives the LLM gaps), 60 s stop grace, shadow-lease backoff, and a memory guard that drains at a history boundaryG3
A killed node’s lease shadows the cell; readyz reports healthy while every write is refused."is not owned by this node" is treated as a wait-condition with 20/40/60 s backoff, not as corruptionG3
MERGE batches time out at 30 s under compaction debt on back-to-back writes.idempotent retry at 2/4/8 s; batches stay ≤1024 rows via UNWIND over BoltG3
countLabel is a full label scan — seconds per call on 246K Turn nodes.admin-only (/api/meta/health); never on the id-anchored answer pathBlock A
13 of 500 histories reuse a session_id within the history, so session_id is not a key.sessions, turns and claims key on the positional ordinal; session_id is a display propertyBlock A
The upstream image ships no curl, wget or nc — the compose healthcheck could never run.a bash /dev/tcp probe of /readyz on the admin port; healthy in ~10 s from coldBlock B
non-goals: benchmark supremacy · schema-free magic · answers without citations · deleting anything, ever · dark mode (the print metaphor is light, deliberately)