docs: M6a device check on straylight
Spec 7: subagent child on slot 2; parent's next turn cache_n 1787 of 1788. Private $HOME, production untouched. Co-Authored-By: Grok 4.6 <noreply@x.ai>
This commit is contained in:
@@ -41,8 +41,9 @@ promoted only a trusted note). M6 (subagents and cloud consult) is approved
|
||||
(`docs/specs/2026-10-04-m6-subagents-consult.md`). M6a (`subagent` tool, isolated child on
|
||||
`slots.background`, scheduler skip, `brokerd` taint inherit; spec
|
||||
`docs/specs/2026-10-04-m6-subagents-consult.md` sections 3, 5, 6, 7 M6a and 8; plan
|
||||
`docs/plans/M6a/`) is done on branch `m6a`, reviewed in `docs/implementer-log.md`; no finding
|
||||
is open; spec 7 device check on straylight is next. M6b (consult) is later.
|
||||
`docs/plans/M6a/`) is done, reviewed in `docs/implementer-log.md`; no finding is open; spec 7
|
||||
device-checked on straylight (child `sub-m6a-live-2` on slot 2; following slot-0 turn `cache_n`
|
||||
1787 of 1788). M6b (consult) is later.
|
||||
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
|
||||
|
||||
@@ -188,3 +188,9 @@ passed spec 7: heartbeat on slot 2, then a following slot-0 turn with `cache_n`
|
||||
`jobs/tier.toml` promoted only the trusted note. A long idle gap after the first live turn lost
|
||||
the prefix (unified pool / other occupancy), which is P9, not a mixed-slot bug. `every_s = 20`
|
||||
with `last_heartbeat` at tick start re-fired immediately after a long pulse.
|
||||
|
||||
M6a was Ornith through the driver, five tasks, first-gate pass in every row, no stop. The only
|
||||
code difference from the reference is cosmetic in `subagent.rs`. Device check passed spec 7:
|
||||
child `sub-m6a-live-2` on slot 2, then a following slot-0 turn with `cache_n` 1787 of 1788. The
|
||||
same-turn continuation after a busy-slot wait on 2 lost the prefix (`CacheLoss` 0 of 1672),
|
||||
which is P9; the immediate next turn held it.
|
||||
|
||||
+20
-6
@@ -1159,7 +1159,7 @@ Accepted. No product finding. Ornith-1.5-35B-A3B through `tools/run-plan.sh` on
|
||||
`m6a`. The branch differs from the reference (`~/boxmaker-refs/m6a-ref.bundle`, `87c3fa7`) only in
|
||||
`crates/loopd/src/subagent.rs`: unused `Dispatch` import dropped, types written as `bxcore::…` /
|
||||
`crate::tools::…`, a doc comment on `RUNBOOK`, rustfmt wrapping. Same behaviour. Log rows are the
|
||||
other delta. Spec 7 device check on straylight is not in this review; it is next.
|
||||
other delta. Spec 7 device check on straylight passed (below).
|
||||
|
||||
| Check | Result |
|
||||
|---|---|
|
||||
@@ -1178,11 +1178,25 @@ later. `holds_prefix("sub-")` is any held id starting `sub-`, including a live `
|
||||
turn. `run` rebuilds `sub-<parent>-<n>` instead of calling `child_id`. None of those is a miss
|
||||
against the tasks; they match the reference.
|
||||
|
||||
Device check, spec 7 for M6a, is not in this review. It needs straylight, slot 0 live / slot 2
|
||||
background, slot 1 left busy, a private `$HOME`, and production daemons untouched: a `bxctl`
|
||||
session calls `subagent` with a short task; the child log is on slot 2; the parent's next turn has
|
||||
`cache_n` near its previous total. Spec 7's taint-copy case (untrusted parent, child's identity
|
||||
`add` lands in `notes.md`) is the same setup.
|
||||
Device check, 2026-10-04 UTC, on straylight (`target/debug` of `m6a` at `9f252c3`; Ornith slot 0
|
||||
live, slot 2 background; a private `$HOME` at `/home/kyle/boxmaker-m6a-check`, production daemons
|
||||
untouched, no `gatewayd`). Empty `grants/` (spawn is not a grant; no `[runner]`). Heartbeat
|
||||
`every_s = 0`. `bxctl chat --session m6a-live --no-thinking`: find_tool then call_tool `subagent`
|
||||
with task "Reply with exactly the single word PING"; then an immediate following turn "PONG".
|
||||
|
||||
At the first live turn, slot 2 was processing ~108k (`[waiting: slot busy]`); the parent's
|
||||
same-turn continuation after the child's `ToolResult` logged `CacheLoss` 0 of 1672 (P9). The
|
||||
following turn, sent immediately, held the prefix. Requests used `id_slot` 0 and 2 only.
|
||||
|
||||
| Check | Result |
|
||||
|---|---|
|
||||
| Child log on the background slot | `sessions/sub-m6a-live-2/0.jsonl` `SessionStart.slot` is 2; user line is the time line then the task; assistant `PING`; `Usage` `cache_n` 0, `prompt_n` 1412, `predicted_n` 23 |
|
||||
| Parent's next turn `cache_n` near previous total | `m6a-live` after the child: `cache_n` 0, `prompt_n` 1698, `predicted_n` 90, `CacheLoss` 0 of 1672; turn 2: `cache_n` 1787, `prompt_n` 26 (expected 1788). Slot 0. |
|
||||
| Parent result names the child | `ToolResult` call 2: `sub-m6a-live-2 completed` then `PING` |
|
||||
|
||||
Taint-copy (untrusted parent, child's identity `add` lands in `notes.md`) was not re-run on the
|
||||
device; task 05's given tests already cover inherit, including a missing middle parent. No
|
||||
Mattermost. The stack was stopped after turn 2.
|
||||
|
||||
What was good: five tasks, five first-gate passes, no stops, given tests unedited, every
|
||||
review-focus case in the plan is covered by a given test and holds, `subagent-id` has a pointer
|
||||
|
||||
Reference in New Issue
Block a user