memoryd (files, the check, edits, journal, index, recall, serving), the memory tools and built-in grants in brokerd, the memory block in loopd, bxctl reindex and memory, and the device checks with memoryd. Each task was built as a reference and gated. Each was replayed on its own at its end state (854 to 936 tests) and mutation-checked. Each skeleton compiles and fails its tests. Every todo comment was read beside its signature. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1.1 KiB
memory-unavailable
What you see. Starting a new session fails with a line naming memoryd or a file under
memory/, and this entry. Existing sessions still work: they use the baseline saved when they
started.
Why. A new session's baseline takes the memory block from memoryd (soul.md, memory.md,
user.md), and loopd could not get it: memoryd is not running or not listening at
<home>/run/loop-memory/memory.sock (or [memory] socket in loopd.toml), or it refused because
a file is unreadable or over its limit (soul.md 4,000 characters, memory.md 2,200, user.md
1,375; an owner's edit can put it over). Starting without the memory the agent is, and without
telling you, is what this prevents.
Confirm. pgrep -x memoryd; the line names the file or the socket. For a file,
wc -m <home>/memory/<file>.
Fix. Start memoryd serve --config <path>, or shorten the file (for memory.md and user.md,
move entries to notes.md by hand: an entry under a line § moved <time> from memory.md in session owner).
Check. Start a new conversation; it answers.