Register Hestia for switch signals -- FABRIC-3.6.md task 1.5
Added a fourth capsule_vm_find_by_name_nocase("Hestia", ...) +
sk_vm_switch_signal_register(...) block in src/starkernel/kernel_main.c,
same shape as the existing Hermes/Artemis blocks, placed after all four
fleet members are confirmed born -- the existing comment on this block
already states why: no critical-section protection during setup, so
registering earlier risks the signal firing mid-birth.
Three-arch boot clean: amd64/aarch64/riscv64 all reach [zuse@Hera] ok>,
zero UNKNOWN WORD, hashes identical to task 1.4's baseline (this is
pure C runtime state, doesn't touch any FORTH dictionary). No compiler
warnings.
Took FABRIC-3.5.md SXXXV.0's "invisible by default" warning literally
rather than trusting a clean boot log alone: SXXVIII.2's own recorded
switch-storm signature is "QEMU pinned near 100% CPU, serial log frozen
solid," not an error message. Confirmed normal wall-clock boot time on
all three (~30s) and, since TCG itself always shows ~100% CPU
regardless of guest workload, watched each serial log's line count at
the idle prompt for 5-10s and confirmed it stopped growing rather than
flooding or silently stalling.
Authorized by Captain Bob ("yes").
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
10e2d654e5
commit
487769e18a
+19
-1
@@ -359,8 +359,26 @@ Hestia; headless policy intact.
|
||||
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;
|
||||
- [x] **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).
|
||||
2026-09-19 · `logs/20260919-170232/amd64/`, `logs/20260919-170403/aarch64/`,
|
||||
`logs/20260919-170537/riscv64/` — all three reach `[zuse@Hera] ok>`, zero `UNKNOWN WORD`,
|
||||
hashes identical to task 1.4's baseline (switch-signal registration is pure C runtime
|
||||
state, doesn't touch any FORTH dictionary). Added a fourth
|
||||
`capsule_vm_find_by_name_nocase("Hestia", ...)` + `sk_vm_switch_signal_register(...)` block
|
||||
in `src/starkernel/kernel_main.c`, same shape as the existing Hermes/Artemis blocks,
|
||||
**after** all four fleet members are confirmed born (same "never register before birth is
|
||||
confirmed" discipline the existing comment on this block already states).
|
||||
**Took §XXXV.0's "invisible by default" warning literally rather than trusting a clean
|
||||
boot log alone:** §XXVIII.2's own recorded storm signature is "QEMU pinned near 100% CPU,
|
||||
serial log frozen solid" — not an error message, not `UNKNOWN WORD`. Named that signature
|
||||
before running, then checked for it directly rather than just reading `ok>` and moving on:
|
||||
confirmed each boot reached the prompt in normal wall-clock time (~30s, matching every
|
||||
prior run in this document), and — since TCG itself always shows ~100% CPU regardless of
|
||||
guest workload, so CPU alone proves nothing — watched the serial log's own line count at
|
||||
the idle prompt for 5–10s on all three architectures and confirmed it **stopped growing**
|
||||
(last real output, `StarForth CLI`/`ok>`, with nothing appended after) rather than flooding
|
||||
or silently stalling mid-boot. No compiler warnings.
|
||||
- [ ] **1.6** — Move `fabric.4th` from `init.4th` to `hestia/init.4th`. *Check:* Hera's dict
|
||||
shrinks, Hestia's grows; cross-arch identity holds.
|
||||
- [ ] **1.7** — Move `font.4th` likewise. *Check:* same.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Capsule Block Manifest — Auto-generated
|
||||
<!-- Generated by mkcapsule --manifest 2026-09-19T20:59:29Z -->
|
||||
<!-- Generated by mkcapsule --manifest 2026-09-19T21:05:35Z -->
|
||||
<!-- 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
@@ -1030,6 +1030,17 @@ static void kernel_main_deep(BootInfo *boot_info) {
|
||||
artemis_entry.state == VM_STATE_LIVE) {
|
||||
sk_vm_switch_signal_register(artemis_entry.vm_id);
|
||||
}
|
||||
/* Hestia is the fourth fleet member through Phase 1-3 (FABRIC-3.5.md
|
||||
* SXXXIV.4) -- FABRIC-3.6.md task 1.5, same registration shape as
|
||||
* Hermes/Artemis above, added here rather than earlier for the
|
||||
* identical reason the comment above this block already gives. */
|
||||
{
|
||||
VMRegistryEntry hestia_entry;
|
||||
if (capsule_vm_find_by_name_nocase("Hestia", &hestia_entry) == 0 &&
|
||||
hestia_entry.state == VM_STATE_LIVE) {
|
||||
sk_vm_switch_signal_register(hestia_entry.vm_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Decided 2026-09-05: no console for the running system unless a
|
||||
|
||||
Reference in New Issue
Block a user