Add M2a plan: thirteen tasks, tests, fake server and recordings

The tasks build the inference path: emsha-backed SHA-256, inferproxy,
config, a hand-written HTTP and SSE client, request building, delta
assembly, the chat state machine, the thinking cap, the slot gate with
retry, the startup self-test and on-device verification.

Everything the tasks copy in was checked against a private reference
implementation: the gate passes after each task in order, the timing
tests pass repeatedly under CPU load, and the reference passes the
self-test and all four device checks on straylight. Expected results
for the recorded streams were derived by a separate script.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-09-17 13:34:11 -07:00
co-authored by Claude Fable 5.1
parent a49db39b54
commit 76ccc251cd
56 changed files with 6367 additions and 3 deletions
+5 -2
View File
@@ -6,7 +6,9 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
Boxmaker is a sovereign personal agent harness written in Rust. Work proceeds one milestone at a
time (M0 to M7, table in `docs/milestones.md`). M0 (measurements) and M1 (workspace, `proto`, gate,
`Decision`) are done. Check `docs/plans/` and `docs/implementer-log.md` for what is in flight.
`Decision`) are done. M2 is split: M2a (the inference path) is planned in `docs/plans/M2a/`,
M2b (sessions, turn loop, `bxctl chat`) is not designed yet. Check `docs/implementer-log.md` for
what is in flight.
- `docs/design.md` is the binding design brief. If it looks wrong or conflicts with a measurement,
stop and say so. Changes to it land as their own commit and are recorded in `docs/decisions.md`,
@@ -36,9 +38,10 @@ requests, check `GET /slots?model=ornith-1.5-35b-a3b` so you do not evict someon
- `make gate` runs offline: `cargo fmt --check`, clippy with warnings denied, `cargo test`,
`cargo-deny`, and a check that fails on any source file over 500 lines. Run it before calling
any work done, and report the exit status and last lines.
- `make verify-device` runs the checks that need straylight, such as the baseline token budget.
- Single test: `cargo test -p <crate> <test_name>`.
- `make audit` runs `cargo deny check advisories`; it needs the network.
- `make verify-device` (from M2a task 13) runs the ignored tests in `crates/loopd/tests/device.rs`
against straylight through a private `inferproxy`. It uses Ornith slot 0.
- `bxctl` is the owner CLI (`bxctl chat` from M2, `bxctl reindex` from M5). Until then every binary
prints "not implemented" and exits 2.