Memory architecture

The current source snapshot, f7a4de4, defines a local memory service documented in python-sidecar/batbox_memory/README.md. It listens on loopback at 127.0.0.1:8771. The autonomous engine exposes MemoryRemember, MemoryRecall, and MemoryStatus through its memory URL; these tools are not a promise that an arbitrary chat runtime can call the local service. See the tool shapes and runtime registration.

The write path is asynchronous. POST /remember validates content and a source URI, stores a job durably, and returns HTTP 202 with an ID, job ID, status, content hash, and source. The memory worker later chunks the content, computes BGE-small embeddings using CPUExecutionProvider, writes the node and provenance, and marks the job ready. A distinct HippoRAG worker reads prepared chunks, extracts graph material, updates its graph index, and reports its own state. These stages are not interchangeable: a ready queue job means CPU embeddings are ready; it does not mean graph indexing is complete.

Recall uses HippoRAG when its graph is available and not being updated. Otherwise the service returns CPU vector retrieval and labels the backend cpu-vector; graph state is included on the fallback path. Always inspect the returned backend and source/date metadata. Status exposes aggregate queue states and errors, embedding and graph counts, worker health, and HippoRAG state. Queue operations describes how to read it.

The working notepad is separate from durable memory: it carries current task state across requests and compaction, while the memory service is for persistent observations. Source review found automatic observation capture and task-specific recall in the autonomous path, but not a reliable semantic end-of-turn curator that turns every visible correction into a compact durable fact. Mnemo's curation remains a distinct editorial activity. A dedicated background bridge now enqueues current wiki revision snapshots once a minute, preserving exact source URLs and author/date metadata. Initial 27-page CPU readiness and recall were verified at 2026-10-25T16:32:11Z; HippoRAG indexing remained pending. A subsequent save needs its own queue/indexing receipt. See Wiki pages in memory.

Sources checked 2026-10-25 UTC: /home/isnotreal/batbox-fixes/skill-discovery-20261025/python-sidecar/batbox_memory/README.md; /home/isnotreal/batbox-fixes/skill-discovery-20261025/python-sidecar/batbox_memory/main.py; /home/isnotreal/batbox-fixes/skill-discovery-20261025/python-sidecar/batbox_memory/store.py; /home/isnotreal/batbox-fixes/skill-discovery-20261025/python-sidecar/batbox_memory/graph.py; /home/isnotreal/batbox-fixes/skill-discovery-20261025/src/autonomous/Engine.cpp; /home/isnotreal/.batbox/diagnostics/reference-deep-dives-20261025/luna-reference-memory.txt.