From 96e319043e1f1315883b86261e5868163420bcac Mon Sep 17 00:00:00 2001 From: Kyle Isom Date: Fri, 25 Sep 2026 21:02:32 -0700 Subject: [PATCH] runbook: the M5a memory entries as the plan gave them Found in the M5a review: task 13 renamed core-memory-unreadable to memory-unavailable but kept its body, which still described memory/core.md, and appended a memory-index-damaged entry of its own that names a pointer memoryd never prints and leaves out `bxctl reindex`. Its log row says both fragments were copied. Both entries are now the plan's fragments, verbatim. Co-Authored-By: Claude Opus 5.5 (1M context) --- docs/runbook.md | 54 +++++++++++++++++++++---------------------------- 1 file changed, 23 insertions(+), 31 deletions(-) diff --git a/docs/runbook.md b/docs/runbook.md index 56e3864..75c1f15 100644 --- a/docs/runbook.md +++ b/docs/runbook.md @@ -397,24 +397,25 @@ the cache was lost, which `loopd` logs as a cache loss. ## memory-unavailable -**What you see.** Starting a new session fails with an error naming `memory/core.md`, and this -entry. Existing sessions still work: they use the baseline saved when they started. +**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.** `memory/core.md` exists but cannot be read. A missing file is fine, but starting without -memory you wrote, and without telling you, is not. +**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 +`/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.** +**Confirm.** `pgrep -x memoryd`; the line names the file or the socket. For a file, +`wc -m /memory/`. -```sh -ls -l "$BOXMAKER_HOME/memory/core.md"; head -c 100 "$BOXMAKER_HOME/memory/core.md" -``` +**Fix.** Start `memoryd serve --config `, or shorten the file (for `memory.md` and `user.md`, +move entries to `notes.md` by hand: an entry under a line `ยง moved