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
memoryd-start-failed
What you see. memoryd exits 1 at start with one line naming its config file, a directory,
a file under memory/, the index, or a socket, then this entry.
Why. memoryd could not read or parse memoryd.toml (unknown keys are errors), could not
read the starter soul.md when memory/soul.md was missing, could not create or open
memory/ or index/memory.sqlite3, or could not listen on one of its three sockets (their
directories are made 0700 and the sockets 0600, as brokerd's are; a path of 108 bytes or more
cannot be a socket). It will not start without the memory it owns.
Confirm. The line names the path. For the file, check it against
docs/specs/2026-09-24-m5a-local-memory.md, section 11. For a directory,
ls -ld <dir> "$(dirname <dir>)". Address already in use means another memoryd runs:
pgrep -x memoryd.
Fix. Correct the file, the path or the ownership. The index is disposable: if it is damaged,
move it aside and start memoryd, which rebuilds it (see memory-index-damaged).
Check. memoryd serve --config <path> prints memoryd: serving.