| 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 query | G0/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 edges | G0 |
| 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 statement | G1 |
| 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 instead | G1 |
| 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 form | G1 |
| 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 boundary | G3 |
| 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 corruption | G3 |
| 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 Bolt | G3 |
| countLabel is a full label scan — seconds per call on 246K Turn nodes. | admin-only (/api/meta/health); never on the id-anchored answer path | Block 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 property | Block 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 cold | Block B |
| non-goals: benchmark supremacy · schema-free magic · answers without citations · deleting anything, ever · dark mode (the print metaphor is light, deliberately) |