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:
2026-10-03 20:38:54 -07:00
co-authored by Grok 4.6
parent 9f252c30ed
commit db5ee820f2
3 changed files with 29 additions and 8 deletions
+6
View File
@@ -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
View File
@@ -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