diff --git a/docs/fabric/FABRIC-3.md b/docs/fabric/FABRIC-3.md index c6bbfea6..c7a53c80 100644 --- a/docs/fabric/FABRIC-3.md +++ b/docs/fabric/FABRIC-3.md @@ -6303,3 +6303,30 @@ failed was right to: it refuses a line that is not what was printed. The capture stays headless"; minting Zuse on a stick's first boot (`docs/v4.0.0/STICK.md` section 6) is #92. **Ruled:** #92 into alpha.4, so the PC stick downloaded from alpha.4 on boots to `[zuse@Hera] ok>` at its first boot. + +### 8. #92, Task 1: the proxy Zuse -- a stick's first boot mints its own (2026-11-08) + +Plan `docs/v4.0.0/plans/2026-10-29-stick-5-proxy-zuse-and-real-zuse.md`, Task 1; `STICK.md` section 6. + +- **Built:** the genesis marker's version 2 (`zuse_genesis_marker_v2_t`: the proxy's key and the + real Zuse's, zero until she is minted), read and written by the v4 boot alone + (`kernel/src/v4/sk_v4_marker.c`; a version 1 marker -- the minted pair's -- reads as a proxy with + no real Zuse). The identity check and the genesis mint are split out of v3's + `capsule_zuse_boot.c` (`capsule_zuse_boot_check_key`, `capsule_zuse_boot_genesis_mint`) as D1 + split the check from the VM; v3's callers are unchanged in behaviour. On v4 + (`sk_v4_identity.c`), a stick with no marker and a blank identity partition mints the proxy Zuse, + reads her back, and only then writes the marker that names her; she is logged in. A marker with a + real key gives the proxy no session (the fixed screen is Task 5). +- **Tested first, seen to fail:** `genesis` (a fresh data stick, booted twice) failed on amd64 with + "Zuse: no genesis on this disk -- the system stays headless", both boots. After: `genesis` passes + on all three ISAs (first boot minted, second recognised, not minted again); `stick_genesis` -- the + PC stick as built, no `STICK_PAIR` -- reaches `[zuse@Hera] ok>` with nothing set up: plug and play. + Regressions pass: `zuse`, `stick_boot`, `stick_zuse`, `stick_artemis`, `two_sticks`, + `artemis_unsigned`, `raw_ident`, `hotplug`, `midpull`, `waitpull`, `typeahead`, the seven GPT + modes, `v3_keys`. +- **My slip, written down:** `stick_boot` and `stick_artemis` were first run without + `KERNEL_ARGS=--log-level=info`, which their disk-size checks read; they failed on that check alone, + and passed when rerun at the info level. Both runs' logs are in the tree. +- **Left as it is (the plan's order):** a genesis whose marker write fails leaves Zuse on the + identity partition with no marker naming her; that stick then logs no one in until it is + rewritten. Said once, "Zuse: genesis marker write failed -- headless".