Plan M5a: local memory in 15 tasks
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>
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# M5a task 15: the starter soul, and the device checks with `memoryd`
|
||||
|
||||
**Branch:** `m5a` (run `git switch m5a`; `git status --short` must be empty, otherwise stop)
|
||||
**Commit subject:** `M5a: the starter soul.md, and the device checks with memoryd running`
|
||||
|
||||
## Goal
|
||||
|
||||
- `config/soul.md`, the generic starter persona `memoryd` copies to `memory/soul.md` the first
|
||||
time (M5a spec, section 3). The owner rewrites it.
|
||||
- `make verify-device` runs `memoryd` beside `loopd serve` (which starts no session without it
|
||||
since task 13), and the baseline check now measures the baseline **with memory**: the starter
|
||||
soul with empty files, and every file at its limit. Both must stay at 3,000 tokens or less.
|
||||
Measured on the reference: 881 and 2,432.
|
||||
|
||||
This is the only task that needs straylight.
|
||||
|
||||
## Files
|
||||
|
||||
- Copy: `config/soul.md`, `crates/loopd/tests/support/memoryd.rs`, and a **new version** of the
|
||||
given `crates/loopd/tests/device.rs`
|
||||
- Modify: `Makefile`, `docs/implementer-log.md`
|
||||
|
||||
## The edit, exactly
|
||||
|
||||
**`Makefile`**, in `verify-device`: after the line
|
||||
` BOXMAKER_INFERPROXY=$(CURDIR)/target/debug/inferproxy BOXMAKER_BXCTL=$(CURDIR)/target/debug/bxctl \`
|
||||
add the line (a tab first, as in the lines around it)
|
||||
|
||||
```make
|
||||
BOXMAKER_MEMORYD=$(CURDIR)/target/debug/memoryd \
|
||||
```
|
||||
|
||||
## Steps
|
||||
|
||||
- [ ] **1. Copy** the three files; edit the `Makefile`.
|
||||
- [ ] **2. Run the gate.** `make gate`: `gate: ok` (the device tests are ignored there; the count
|
||||
is unchanged, about 936).
|
||||
- [ ] **3. Check the server is free.** `curl -s "http://straylight:11434/slots?model=ornith-1.5-35b-a3b"`:
|
||||
slot 0 must show `"is_processing":false`. If it is busy, wait a minute and look again; if it is
|
||||
still busy after ten minutes, stop and report.
|
||||
- [ ] **4. Run the device checks.** `make verify-device`. Expected: `6 passed`, then
|
||||
`verify-device: ok`. `the_baseline_fits_the_token_budget` fails with the number of tokens if
|
||||
either baseline is over 3,000.
|
||||
- [ ] **5. Log and commit.** `git add -A config/soul.md crates/loopd Makefile docs/implementer-log.md Cargo.lock && git commit`
|
||||
|
||||
This is the last task of M5a. Stop after the commit.
|
||||
|
||||
## Done when
|
||||
|
||||
- `make gate` prints `gate: ok` and `make verify-device` prints `verify-device: ok`.
|
||||
|
||||
## Stop and report if
|
||||
|
||||
- straylight cannot be reached, or `make verify-device` fails. Report its output; do not change a
|
||||
test or the soul to make it pass.
|
||||
Reference in New Issue
Block a user