P24: M5b is hardening, M5c Honcho, M5d the scheduler

Owner's decision. The hardening half (sanitizer, tag neutralisation,
image links escaped, the invalid-arguments reason, and the secret store
available to every role) needs neither roncho nor Honcho and can be
specified now. Honcho waits on roncho's tagged release. Earlier
documents keep the old numbers; P24 says so.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-25 23:53:12 -07:00
co-authored by Claude Opus 5.5
parent 0d6cff444b
commit cc04b3923b
3 changed files with 13 additions and 9 deletions
+5 -3
View File
@@ -22,8 +22,10 @@ M5a, M5b and M5c by P17 to P21 (applied 2026-09-24). M5a (local memory, `memoryd
`docs/specs/2026-09-24-m5a-local-memory.md`, 22 tasks) is done and merged, reviewed in
`docs/implementer-log.md` and checked on straylight against the owner's Mattermost; the device
check found that a recalled tainted note left a session trusted, fixed by task 21. Its one open
item, a reason in invalid-arguments refusals, is in `docs/decisions.md` for M5b. M5b (Honcho and
hardening) is next and has no spec yet. P22 (proposed, not applied) makes Boxmaker a fleet of
item, a reason in invalid-arguments refusals, is in `docs/decisions.md` for M5b. P24 split the
rest of M5: M5b is hardening (sanitizer, tag neutralisation, the secret store for every role) and
is next, with no spec yet; M5c is Honcho, through the owner's `roncho` once it has a tagged
release (`docs/specs/2026-09-25-roncho-requirements.md`); M5d is the scheduler. P22 (proposed, not applied) makes Boxmaker a fleet of
independent agents, one per host, deployed with Nix in a last milestone, M8; `flake.nix` builds
every binary, the tool image and a dev shell. Work happens on titan (macOS, no Nix); build and run
on straylight, where `~/src/boxmaker-m5a` is a clone built with `nix build`. The owner's Honcho
@@ -85,7 +87,7 @@ Separate binaries in one Cargo workspace. Each role holds as little authority as
- `loopd` owns sessions and prompt assembly. It has no credentials and no network. Its only I/O
is Unix sockets to `gatewayd`, `brokerd`, `inferproxy` and (from M5a) `memoryd`.
- `memoryd` (M5) owns memory: `memory/soul.md`, `memory.md`, `user.md` (identity), `notes.md` (experience), the FTS5
index, and from M5b the sync to the fleet's Honcho. It runs memory tool calls `brokerd` has
index, and from M5c the sync to the fleet's Honcho. It runs memory tool calls `brokerd` has
decided, and reaches Honcho and nothing else.
- `brokerd` is the only place authority lives. It reads owner-written grants (it cannot write
them), runs each approved tool call in a fresh rootless container, and writes a hash-chained