review: M6b consult
This commit is contained in:
@@ -1210,3 +1210,38 @@ and a runbook entry, no new crate.
|
||||
|
||||
Known M6a limits, left as the README lists them: no Mattermost delivery of the child's log; one
|
||||
background slot (nested children serialise); `brokerd` does not see the spawn; `consult` is M6b.
|
||||
|
||||
### M6b, tasks 01 to 06 — reviewed 2026-10-04 by the design model (Grok 4.6)
|
||||
|
||||
Accepted. No product finding. Ornith-1.5-35B-A3B through `tools/run-plan.sh` on straylight, branch
|
||||
`m6b`. The product files match the reference (`~/boxmaker-refs/m6b-ref.bundle`, `5fb05f0`) in
|
||||
behaviour. The remaining delta is rustfmt import order in `args.rs`, the order of
|
||||
`SECRET_POINTER` and `NOT_CONFIGURED` in `consult.rs`, a blank line in `main.rs`, and a missing
|
||||
blank line before `## consult-not-configured` in `docs/runbook.md`. Log rows are the other delta.
|
||||
The two owner docs commits ahead of the plan (`docs/decisions.md` cloud-led row, `docs/egress.md`
|
||||
loopback dummy) sit on the branch and were outside the reference. Spec 7 device check is later
|
||||
(loopback dummy on straylight, no internet).
|
||||
|
||||
| Check | Result |
|
||||
|---|---|
|
||||
| 6 done task commits, each with `Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>` | pass (plus the plan commit `50e9cc2` and the two section-10 docs commits) |
|
||||
| Given tests byte-identical to `docs/plans/M6b/files/` (the runbook fragment is appended into `docs/runbook.md`) | pass |
|
||||
| Protected files (`docs/design.md`, `docs/decisions.md`, `docs/inference-contract.md`, `docs/specs/`, `docs/plans/`, `AGENTS.md`, `CLAUDE.md`) untouched by Ornith | pass |
|
||||
| Log rows | 6 `done`, newest first, first-gate pass, one gate each. Task 03 notes the given tests were written in place; they `cmp` identical. Task 05's row says `NOT_CONFIGURED` was inserted before `SECRET_POINTER`; the file has it after. Same strings. |
|
||||
| No `unwrap`, `expect`, `panic!`, `#[allow]` or `unsafe` in new library code; every source file ≤ 500 lines; no new crate | pass |
|
||||
| `make gate` on this host (rustc 1.98.1 / clippy 0.1.98) | `gate: ok`, 1611 tests, the plan's count |
|
||||
| Independent review of `git diff 50e9cc2 HEAD -- crates docs/runbook.md` against spec sections 4, 5, 6, 7 (M6b) and 8 | `consult` is not core; `m5c()` pushes it after `subagent`; the epoch tools array is `core_schemas()`; `timeout_for("consult")` is `max` with `CONSULT_WAIT` 180 s and `[broker] timeout_ms` still 120_000; `[consult]` denies unknown keys, stores temperature as `temperature_milli` (default 600, ceiling 0.6), and accepts only `http://127.0.0.1` or `http://localhost`; `load_secret` runs only when the table is present, role `"brokerd"`, and a missing or too-open secret names `consult-secret-unreadable`; `ToolName::Consult` is parsed and is outside `ALL` and `is_memory`; grants reject consult paths and hosts; `covers` returns `Some(None)`; `Podman` refuses with `IN_CONSULT`; `AuditEvent::Decision` carries optional `body` and `Approval` does not; no `[consult]` is `decide_forced` `InvalidArguments` with `consult-not-configured` and still records the body (empty model, 0.6); a matching grant goes through `decide_with_body`; `wire_body` is model, temperature, one user message, no tools; `HttpTransport` is loopback TCP HTTP/1.1; `ConsultStack` wraps `Routed`; the answer is tag-neutralised and capped; posted bytes equal the audit body; `untrusted` default true and `result_class` default `private`; both runbook headings exist. |
|
||||
|
||||
No numbered product finding. Task 03's in-place tests and task 05's const-order log line are
|
||||
process notes. `rule_3`'s unknown-tool sentence still names the four container tools.
|
||||
|
||||
Device check is owner-side after this review: a loopback OpenAI-compatible dummy the check starts
|
||||
on straylight; a clean session's audit body matches a captured request; a session that first
|
||||
recalled an untrusted note is refused. No internet consult. Production daemons stay untouched.
|
||||
|
||||
What was good: six tasks, six first-gate passes, no stops, given tests unedited, every
|
||||
review-focus case in the plan is covered by a given test and holds, both consult runbook entries
|
||||
have pointers, no new crate, no vendor names in code.
|
||||
|
||||
Known M6b limits, left as the README lists them: no internet consult, no HTTPS, cloud-led
|
||||
sessions later.
|
||||
|
||||
Reference in New Issue
Block a user