M5c-2 plan: task 08, recall's Honcho part; the wiring split out as task 09

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-28 19:30:58 -07:00
co-authored by Claude Opus 5.5
parent 109aacbd1b
commit d41c41eb4a
9 changed files with 1130 additions and 11 deletions
+3 -3
View File
@@ -12,7 +12,7 @@ and untrusted ones and the fleet's), which move into the sync worker's thread. M
(M5c spec, sections 3, 8 and 9): `recall` searches other agents' workspaces and the fleet's, and
`ask_memory` asks one or two workspaces by name. Reading needs clients of its own. This task
builds them at start and gives later tasks the types they use; nothing searches or asks yet
(tasks 08 and 09).
(tasks 08 to 10).
- **`Readers`** (new module `crates/memoryd/src/honcho/read.rs`, given whole): a `Reader` for
- each `[[honcho.read]]` workspace, in the order written, with that entry's `trust` and
@@ -37,7 +37,7 @@ builds them at start and gives later tasks the types they use; nothing searches
- **At start**, `start::open` builds the readers beside the writers' `Clients` and keeps them in
`Opened::readers`. A read key that cannot be read stops `memoryd`, as a written workspace's
does. The three written workspaces' keys are read by both; each key file's warning is logged
once. `serve.rs` does not change: nothing uses the readers until task 08, which takes
once. `serve.rs` does not change: nothing uses the readers until task 09, which takes
`opened.readers` before the worker's thread takes the rest of `Opened`.
## Every place that changes
@@ -77,7 +77,7 @@ This is the complete list.
From `config.rs` it needs `FLEET_KEY`, `TRUSTED_KEY`, `UNTRUSTED_KEY`, `read_key`, `Trust` and
`HonchoConfig`, all public already, and from `bxcore` `DataClass` and
`bxcore::memory::OWN_WORKSPACE` (`"own"`, task 01).
- **What `Readers` offers** (for tasks 08 and 09; read `read.rs` for the whole):
- **What `Readers` offers** (for tasks 08 to 10; read `read.rs` for the whole):
```rust
pub const SEARCH_READ: Duration; // 5 s