FABRIC-3.md: close §F.27, first real second identity minted, MSG-TICK gap found+fixed

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KBjfeLPo71sUQ8zC7V7P5m
This commit is contained in:
Robert Allan James
2026-08-28 22:06:00 -04:00
co-authored by Claude Sonnet 5
parent d00e6cb50d
commit a54e84b2d6
+31
View File
@@ -3227,3 +3227,34 @@ branch, not re-mint, exactly as seen on aarch64/riscv64 above.
Where this leaves the original F.25 directive: fully closed. `make qemu` (any arch, default Where this leaves the original F.25 directive: fully closed. `make qemu` (any arch, default
invocation) now reliably attaches both disks, lands in an authenticated Zuse session, and invocation) now reliably attaches both disks, lands in an authenticated Zuse session, and
reruns cleanly. Commit follows. reruns cleanly. Commit follows.
### F.27 — first real second identity minted: a genuine `MSG-TICK` gap found and fixed (2026-08-28)
With Zuse's own genesis flow closed, minted the **first real second identity** end to end —
a fresh `disk/captain-bob.img`, hot-attached via QMP (`blockdev-add` + `device_add
usb-storage,bus=xhci0.0`, same precedent as §W's own hotplug testing) alongside Zuse's already-
authenticated session, `MINT`ed with a real human profile ("Captain Bob"/`bob`), detach/
reattach to refresh the sig cache (the known §F.19 gap, worked around the same way), recognized,
`WIREBIND`-attached (`"WIREBIND: bob attached and ready -- USE it to begin"`), and switched into
live with `USE` — full first-token verification (`WELCOME` printed `"Minted identity -- default
personality"` from inside the `bob` session itself).
**A real, previously-undiscovered bug found live, not assumed away:** the instant `WIREBIND`
made the freshly-born `bob~user` VM live, Hera's own per-idle-tick `MSG-TICK` distributed-
messaging pump (repl.c's Phase C loop, "distributed messaging capsule + idle-loop pump")
began erroring on it every tick, forever —
`UNKNOWN WORD: 'MSG-TICK'` / `VM-EXEC: ERROR in bob~user`. Root cause: `MINT`'s default
personality content (`capsule_mint.c`'s `MINT_DEFAULT_PERSONALITY`) only ever defined `WELCOME`
— unlike `capsule_console.c`'s own `CONSOLE_IDENTITY_SRC`, it never loaded
`common:messaging.4th`, so the RUNCAP-born identity VM had no `MSG-TICK` word for the pump to
find. Not specific to this one identity — every identity minted before this fix would hit the
same infinite error-spam the moment it went live.
**Fix:** `MINT_DEFAULT_PERSONALITY` now loads `common:messaging.4th` and calls `MSG-CD-INIT`
first, exactly mirroring `capsule_console.c`'s own pattern, before defining/calling `WELCOME`.
Verified live: re-minted the same drive after the fix (bleached first) — `WIREBIND` succeeded,
zero `MSG-TICK`/`UNKNOWN WORD` errors over 18+ seconds of idle-loop cycling (several multiples
of the pump's own cadence), `USE bob` and `WELCOME` both still work correctly. Full
three-architecture regression clean (amd64 fresh Zuse reload + the fix compiled in; aarch64/
riscv64 clean Zuse reload, unaffected — the fix only touches content written at `MINT` time, no
change to the boot path itself).