Birth Hestia in kernel_main.c -- FABRIC-3.6.md task 1.4

Added a birth block immediately after Hermes's own, same shape:
S" Hestia" BIRTH followed by a registry-lookup confirmation. Fleet is
now Hera/Hermes/Artemis/Hestia, four VMs, through Phase 1-3
(FABRIC-3.5.md SXXXIV.4) until Phase 4 retires Hermes.

Three-arch boot clean: amd64/aarch64/riscv64 all reach [zuse@Hera] ok>,
zero UNKNOWN WORD. Registry shows all four (BIRTH: Hermes live, BIRTH:
Hestia live, PARITY:BIRTH for all three non-Hera VMs). Hestia's
dict_hash identical across all three architectures (0x31cab513929eea89).
Hera/Hermes hashes unchanged from task 1.3; Artemis's vm_id shifted
(now the 4th birth instead of 3rd -- sequence-derived, not identity-
derived, so expected) but its dict_hash is unchanged and still
identical across arches. No compiler warnings.

Noted, not a regression: Hestia's birth log shows the same
"( Unterminated comment" HADES warning Artemis's birth has shown since
task 0.0's first baseline.

Authorized by Captain Bob ("yes").

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-09-19 17:01:05 -04:00
co-authored by Claude Sonnet 5
parent ff00de9a63
commit 10e2d654e5
9 changed files with 27612 additions and 2 deletions
+16 -1
View File
@@ -342,8 +342,23 @@ Hestia; headless policy intact.
consequence of this flag: `session_set_pinned(vm_id, 1)` for whichever VM name matches).
Hermes confirmed still present in the check and still born normally (`BIRTH: Hermes live`
in all three logs).
- [ ] **1.4** — Birth Hestia in `kernel_main.c`, **alongside** Hermes's existing birth.
- [x] **1.4** — Birth Hestia in `kernel_main.c`, **alongside** Hermes's existing birth.
*Check:* registry shows both; `dict_hash` identical across arches. *Change graphics metekey.
2026-09-19 · `logs/20260919-165646/amd64/`, `logs/20260919-165802/aarch64/`,
`logs/20260919-165931/riscv64/` — all three reach `[zuse@Hera] ok>`, zero `UNKNOWN WORD`.
**Registry shows all four**: `BIRTH: Hermes live`, `BIRTH: Hestia live`,
`PARITY:BIRTH` lines for Hermes/Hestia/Artemis all present in every log. **Hestia's
`dict_hash` identical across all three architectures**: `0x31cab513929eea89`
(capsule_hash `0x3d3a87c3509ab7f3`, matching `hestia:init.4th`'s own hash). Hera/Hermes
hashes unchanged from task 1.3's baseline; Artemis's `vm_id` shifted (now the 4th birth
instead of the 3rd — `vm_id` is derived from birth-sequence position, not identity, so
this is expected, not a divergence) but its `dict_hash` is unchanged and still identical
across arches. Added a birth block in `src/starkernel/kernel_main.c` immediately after
Hermes's own (`S" Hestia" BIRTH` + registry-lookup confirmation), same shape as the
existing Hermes/Artemis blocks. No compiler warnings (forced recompile checked). Noted in
passing, not a regression: Hestia's birth log shows the same `( Unterminated comment`
HADES warning Artemis's own birth has shown since task 0.0's very first baseline — a
pre-existing quirk, not something this task introduced.
- [ ] **1.5** — Register Hestia for switch signals (the `:1007` pattern). *Check:* boot clean;
**no switch storm** (§XXVIII.2's shape — and note it is invisible by default, §XXXV.0).
- [ ] **1.6** — Move `fabric.4th` from `init.4th` to `hestia/init.4th`. *Check:* Hera's dict
+1 -1
View File
@@ -1,5 +1,5 @@
# Capsule Block Manifest — Auto-generated
<!-- Generated by mkcapsule --manifest 2026-09-19T20:40:02Z -->
<!-- Generated by mkcapsule --manifest 2026-09-19T20:59:29Z -->
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
<!-- Hand-written justifications and immutability notes live -->
<!-- in MANIFEST.md alongside this auto-generated index. -->
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+18
View File
@@ -873,6 +873,24 @@ static void kernel_main_deep(BootInfo *boot_info) {
}
}
/* Hestia is the third reconstituted Tripod leg (Hera/Artemis/Hestia,
* FABRIC-3.5.md SII/SIV) -- born here, alongside Hermes, per
* FABRIC-3.6.md task 1.4. Hermes stays live too (SXXXIV.4): the
* fleet is Hera/Hermes/Artemis/Hestia through Phase 1-3, four VMs,
* not three, until Phase 4's Category B strip retires Hermes. Same
* birth-by-name-then-registry-check shape as Hermes/Artemis above. */
console_println("Startup: birthing Hestia (fleet foundation)...");
vm_interpret(mama, "S\" Hestia\" BIRTH");
{
VMRegistryEntry entry;
if (capsule_vm_find_by_name_nocase("Hestia", &entry) == 0 &&
entry.state == VM_STATE_LIVE) {
console_println("Startup: Hestia live");
} else {
console_println("Startup: Hestia birth registry lookup FAILED");
}
}
/* Artemis is now a permanent fleet-foundation VM, not self-test
* scaffolding -- same reasoning as Hermes's own birth just above
* (FABRIC-2.md D.7). Previously born, exercised, and KILLed by item