Skip to content

docs(handover): the autonomous run is done — nine tasks, four questions - #44

Open
codeitlikemiley wants to merge 1 commit into
mainfrom
handover-run-complete
Open

docs(handover): the autonomous run is done — nine tasks, four questions#44
codeitlikemiley wants to merge 1 commit into
mainfrom
handover-run-complete

Conversation

@codeitlikemiley

Copy link
Copy Markdown
Owner

Closes the run brief in GOAL.prompt.md. All nine tasks shipped or resolved. 109 milestones, 101 shipped, 8 open, recounted programmatically.

Four questions waiting for you

All four are at the top of RUN-REPORT.md, each phrased to be answerable in a word:

  1. M14.8 — declare fail-closed the milestone, or build the proxy? (Tasks 2 and 3 already delivered most of fail-closed.)
  2. CallMeta.task — honour it, or remove the field and docs/12's promise?
  3. M14.9's T3-remote accepts a no-egress policy it does not honour — known and fine, or fix?
  4. Air-gap kit — default to packing an inference runner?

The finding I'd most want you to see

Three fields, found one per task, only visible as a class in hindsight — each reads like a control and controls nothing:

Field What it promised What it did
NetPolicy::allow a per-domain allowlist removed the netns / granted full egress + inbound bind
plugin.toml net: shown at the consent prompt as a grant never reached SandboxPolicy
CallMeta.task docs/12: "Callers that know, say" never read

Each was individually latent. Together they say the policy layer has been written ahead of the enforcement layer more than once. A lint that fails when a policy field has no reader would have caught all three — that's the durable fix, and it isn't written.

And one thing that was reported and isn't true

A scoping agent claimed nscurl -bg escapes the macOS sandbox via mach-lookup, with 559 bytes exfiltrated. Tested against the real generated profile: rc=139, no file. The 559 bytes matches my unsandboxed control exactly — its probe wasn't sandboxed. No vulnerability. Recorded so nobody "fixes" it later.

Also in the report

Every test I deliberately broke to prove it fails (seven, all restored green), the mistakes I made during the run — a git reset --soft that folded the report into a milestone commit, a CI red on Linux-only dead code, a test of mine that raced a deliberate design — the two deviations I took from the brief and why, and what remains unverified.

Plus, practically: this machine stretched gates from ~15 minutes to 60–210 because another project built alongside and UTM/QEMU held ~127% of a core for seven hours. Nothing was wrong with the code, and a cargo test --workspace parent at 0% CPU is not evidence of a stall.

Supersedes #39.

https://claude.ai/code/session_017kFpYDqvz6sKGSkM4YKaRf

§2 moves to `4e1ce9c` and 109/101/8, recounted programmatically. M14.9 arrived
from another session mid-run.

§3 records the one thing blocking the rest — M14.8's decision, which tasks 2 and
3 have already mostly made — and names a pattern the run found three times: a
protocol or manifest field that reads like a control and controls nothing.
`NetPolicy::allow` granted every host when asked for one. `plugin.toml`'s `net:`
was rendered at the consent prompt and reached no sandbox. `CallMeta.task` is
promised by docs/12 and read by nobody. Each was individually latent; together
they say the policy layer has been written ahead of the enforcement layer more
than once, and nothing catches that class automatically. A lint that fails when
a policy field has no reader would have caught all three.

§6 is rewritten around what is actually left: four questions, then the dogfood,
then the hardware-blocked list. The training *gates* are executable now (#40), so
a model can be judged the day one exists — which is the point of shipping gates
and not scores.

Also recorded: the two known flakes with what triggers them, and what this
machine does to the suite when another project builds alongside it — gates ran
60 minutes to 3.5 hours against a usual 15, and a parent process at 0% CPU is
not evidence of a stall.

`RUN-REPORT.md` is the full log: every task, every bug found outside the list,
every test deliberately broken to prove it fails, the mistakes I made, the
deviations I took and why, and what remains unverified. #39 is superseded by it.

Claude-Session: https://claude.ai/code/session_017kFpYDqvz6sKGSkM4YKaRf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant