Move fabric.4th + font.4th to hestia/init.4th -- FABRIC-3.6.md tasks 1.6+1.7 (merged)

Tasks 1.6 and 1.7 are not independent, and the punchlist's split was
wrong: font.4th calls G-LINE/G-ELLIPSE, which are fabric.4th's own
words. Confirmed live before committing to an approach -- removed only
fabric.4th's EXEC from init.4th, left font.4th's in place, booted
amd64: Hera's boot floods with UNKNOWN WORD: 'G-LINE'/'G-ELLIPSE' the
moment font.4th loads (logs/20260919-171047/amd64/, kept as evidence).
Reverted that partial state, asked Captain Bob how to proceed given
neither task can independently pass its own three-arch-boot check, and
was told to use best practices.

Moved both together, in their original relative order, into a new
capsules/hestia/init.4th block 4988 -- a deliberate, documented
deviation from "one task, one commit," not a bundling of convenience.

Three-arch boot clean: amd64/aarch64/riscv64 all reach [zuse@Hera] ok>,
zero UNKNOWN WORD. Hestia's dict_hash identical across all three
architectures. Verified the shrink/grow live, not just inferred from
hash movement: HERE reads 20008 in Hera, 63040 in Hestia post-move.
CART-PLOT in Hera is UNKNOWN WORD; the identical call routed into
Hestia via VM-EXEC reaches the word and fails on a stack underflow
instead, proof it exists there since an unknown word can't underflow.

mkcapsule --lint capsules/ clean, 38 files / 0 violations. MANIFEST.md
updated: init.4th's block 2049 entry no longer lists fabric.4th/
font.4th; hestia/init.4th's entry gains block 4988.

Authorized by Captain Bob ("Use best practices.").

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-09-19 17:25:23 -04:00
co-authored by Claude Sonnet 5
parent 487769e18a
commit 5afb33049f
13 changed files with 40538 additions and 23 deletions
+9 -8
View File
@@ -1,5 +1,5 @@
# Capsule Block Manifest — Auto-generated
<!-- Generated by mkcapsule --manifest 2026-09-19T21:05:35Z -->
<!-- Generated by mkcapsule --manifest 2026-09-19T21:22:50Z -->
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
<!-- Hand-written justifications and immutability notes live -->
<!-- in MANIFEST.md alongside this auto-generated index. -->
@@ -18,14 +18,14 @@
| `fabric.4th` | 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 5000, 5001, 5002 | `0x9d9489cbeca4099b` | yes |
| `font.4th` | 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985 | `0x3f305911500c78f6` | yes |
| `hermes:init.4th` | 4153, 4855, 5116 | `0x2df61924448a6812` | yes |
| `hestia:init.4th` | 4986, 4987 | `0x3d3a87c3509ab7f3` | yes |
| `hestia:init.4th` | 4986, 4987, 4988 | `0x6aa0a1b5daf9d2ec` | yes |
| `init-l8-diverse.4th` | 4820, 4821, 4822 | `0xaa293201a6c91838` | yes |
| `init-l8-omni.4th` | 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079 | `0x5979e314d6452045` | yes |
| `init-l8-stable.4th` | 4806 | `0xdc3830f189063a9a` | yes |
| `init-l8-temporal.4th` | 4830, 4831 | `0x51abd4c138246651` | yes |
| `init-l8-transition.4th` | 4840, 4841, 4842 | `0xbcc1a81976f0a4c9` | yes |
| `init-l8-volatile.4th` | 4810, 4811, 4812, 4813 | `0x98caabbbd92abac4` | yes |
| `init.4th` | 2049, 2050, 2057 | `0x1ef4939ed32ec1e6` | yes |
| `init.4th` | 2049, 2050, 2057 | `0x97e74b7abd3d3366` | yes |
| `lib.4th` | 4050 | `0x4b216635c359ef73` | yes |
| `multiuser-doe.4th` | 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055 | `0x22140588ee7c39e6` | yes |
| `sdk.4th` | 5109, 5110, 5111, 5112, 5113, 5114, 5115 | `0x008fdbbb62c94a3a` | yes |
@@ -51,9 +51,9 @@
| LBN | Capsule | xxHash64 | Status |
|-----|---------|----------|--------|
| 2049 | `init.4th` | `0x1ef4939ed32ec1e6` | ok |
| 2050 | `init.4th` | `0x1ef4939ed32ec1e6` | ok |
| 2057 | `init.4th` | `0x1ef4939ed32ec1e6` | ok |
| 2049 | `init.4th` | `0x97e74b7abd3d3366` | ok |
| 2050 | `init.4th` | `0x97e74b7abd3d3366` | ok |
| 2057 | `init.4th` | `0x97e74b7abd3d3366` | ok |
| 2064 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2065 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2066 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
@@ -328,8 +328,9 @@
| 4983 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4984 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4985 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4986 | `hestia:init.4th` | `0x3d3a87c3509ab7f3` | ok |
| 4987 | `hestia:init.4th` | `0x3d3a87c3509ab7f3` | ok |
| 4986 | `hestia:init.4th` | `0x6aa0a1b5daf9d2ec` | ok |
| 4987 | `hestia:init.4th` | `0x6aa0a1b5daf9d2ec` | ok |
| 4988 | `hestia:init.4th` | `0x6aa0a1b5daf9d2ec` | ok |
| 5000 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 5001 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 5002 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
+10 -9
View File
@@ -49,7 +49,7 @@ Blocks: **2049–2052, 2057**
| Block | Immutable | Justification |
|-------|-----------|---------------|
| 2049 | No | Hera VM init: `VM-TREE`/`VM-PARENT`/`VM-CHILDREN`; loads `ACL.4th`, `block-acl.4th`, `zuse-eligibility.4th`, `lib.4th`, `fabric.4th`, `font.4th`, `common:messaging.4th` + `MSG-CD-INIT`. **Corrected 2026-09-19** — previously listed `compudynamics`, `common:msg`, `fleet-k` and `process`; none of those are loaded here. `compudynamics.4th`/`fleet-k.4th` were already deleted (`9323f776`, see "Deleted capsules" below); `common:msg.4th`/`process.4th` are stripped in this same pass (FABRIC-3.6.md tasks 0.2/0.3) and were never `EXEC`'d from this block even before that |
| 2049 | No | Hera VM init: `VM-TREE`/`VM-PARENT`/`VM-CHILDREN`; loads `ACL.4th`, `block-acl.4th`, `zuse-eligibility.4th`, `lib.4th`, `common:messaging.4th` + `MSG-CD-INIT`. **Corrected 2026-09-19 (twice)** — first pass removed a stale listing of `compudynamics`/`common:msg`/`fleet-k`/`process` (none loaded here; two already-deleted, two stripped in the same pass, FABRIC-3.6.md tasks 0.2/0.3). Second pass (same day): `fabric.4th`/`font.4th` **removed** from this list — relocated to `hestia/init.4th` (FABRIC-3.6.md tasks 1.6/1.7), Hera no longer loads either |
| 2050 | No | BOOT-BANNER call — separated so the banner block can be swapped without touching init logic |
| 2051 | No | TRIPOD-TEST — 6 acceptance gates per TRIPOD.md. Dead EVENT-WAIT step replaced with HERMES-TICK liveness check (`3436d564`) |
| 2052 | No | TRIPOD-TEST invocation block |
@@ -433,19 +433,20 @@ Hermes (see above). The table below reflects the actual current footprint.
### `hestia/init.4th` — Hestia VM (third Tripod leg, bind point)
Blocks: **4986–4987** (allocated 4986–4996, FABRIC-3.6.md task 1.1; only 2 of the 11 used so far)
Blocks: **4986–4988** (allocated 4986–4996, FABRIC-3.6.md task 1.1; 3 of the 11 used so far)
Added 2026-09-19 (FABRIC-3.6.md task 1.2, Tripod/kernel reshuffle — see FABRIC-3.5.md §II/§IV).
Reconstitutes the Tripod as Hera/Artemis/Hestia; Hermes stays live and fleet-foundation
throughout Phase 1–3 (FABRIC-3.6.md §XXXIV.4), so Hestia joins the messaging fabric on a fresh
slot rather than reusing Hermes's — see block 4987's own justification below. No `fabric.4th`/
`font.4th` yet (tasks 1.6/1.7 relocate their `EXEC` from `init.4th` to here); not yet birthed
(task 1.4).
Added 2026-09-19 (FABRIC-3.6.md tasks 1.2/1.4/1.6/1.7, Tripod/kernel reshuffle — see
FABRIC-3.5.md §II/§IV). Reconstitutes the Tripod as Hera/Artemis/Hestia; Hermes stays live and
fleet-foundation throughout Phase 1–3 (FABRIC-3.6.md §XXXIV.4), so Hestia joins the messaging
fabric on a fresh slot rather than reusing Hermes's — see block 4987's own justification below.
Birthed (task 1.4) and owns the drawing fabric (`fabric.4th`/`font.4th`, tasks 1.6/1.7 — see
block 4988).
| Block | Immutable | Justification |
|-------|-----------|---------------|
| 4986 | No | `WELCOME` banner word + call. Not immutable: message text may change |
| 4987 | No | Joins `COMMON-CH` on slot **11** (Hera/Hermes/Artemis hold 0/1/2, identities hold 3–10, `messaging.4th:78-85`) — a fresh slot, not Hermes's, since Hermes is still live. **Deliberately does not add a `VM-NAME-REG` entry for "Hestia"** in `messaging.4th`'s `VM-NAMES-INIT` — Phase 1's gate is "messaging untouched," and adding a name means editing that file. Hestia is `COMMON-CH`-reachable by raw slot today, not yet `VM-EXEC`-addressable by name; whichever task first needs name lookup (birth, task 1.4, or later) settles where that one line goes. Not immutable: this is expected to be revisited once name lookup is needed |
| 4988 | No | `S" fabric.4th" EXEC` + `S" font.4th" EXEC` — moved here from `init.4th` (Hera), tasks 1.6/1.7, **merged into one commit rather than done separately as the punchlist originally split them**: `font.4th` calls `G-LINE`/`G-ELLIPSE`, which are `fabric.4th`'s own words, so moving one without the other strands the dependency in whichever VM keeps only half — confirmed live, moving `fabric.4th` alone floods Hera's boot with `UNKNOWN WORD: 'G-LINE'`. Order preserved (`fabric.4th` before `font.4th`), matching `init.4th`'s own prior load order. Not immutable: may grow if more of the drawing/font surface relocates here |
| 4987 | No | Joins `COMMON-CH` on slot **11** (Hera/Hermes/Artemis hold 0/1/2, identities hold 3–10, `messaging.4th:78-85`) — a fresh slot, not Hermes's, since Hermes is still live. **Deliberately does not add a `VM-NAME-REG` entry for "Hestia"** in `messaging.4th`'s `VM-NAMES-INIT` — Phase 1's gate is "messaging untouched," and adding a name means editing that file. Hestia is `COMMON-CH`-reachable by raw slot today, not yet `VM-EXEC`-addressable by name; whichever task first needs name lookup settles where that one line goes. Not immutable: this is expected to be revisited once name lookup is needed |
### Deleted capsules (historical)
+11 -2
View File
@@ -1,9 +1,18 @@
Block 4986
( Hestia -- WELCOME. Third Tripod leg (Hera/Artemis/Hestia, )
( FABRIC-3.5.md SII/SIV), bind point + eventual drawing )
( fabric owner. No fabric.4th/font.4th yet -- tasks 1.6/1.7.)
( FABRIC-3.5.md SII/SIV), bind point + drawing fabric owner. )
: WELCOME ( -- ) LOG-INFO" Hestia: loaded" ;
WELCOME
Block 4988
( fabric.4th/font.4th moved here from init.4th (Hera) -- )
( FABRIC-3.6.md tasks 1.6/1.7, merged into one commit: they )
( are not independent -- font.4th's G-LINE/G-ELLIPSE calls )
( are fabric.4th's own words, so moving one without the )
( other breaks whichever VM keeps only half the pair. Order )
( preserved: fabric.4th before font.4th, same as init.4th's )
( own load order before this move. )
S" fabric.4th" EXEC
S" font.4th" EXEC
Block 4987
( Hestia joins COMMON-CH as a full messaging participant, )
( same pattern Hermes/Artemis already use. Fresh slot 11: )
-2
View File
@@ -17,8 +17,6 @@ S" ACL.4th" EXEC
S" block-acl.4th" EXEC
S" zuse-eligibility.4th" EXEC
S" lib.4th" EXEC
S" fabric.4th" EXEC
S" font.4th" EXEC
( SXX: same pattern Hermes/Artemis/console/mint already use. )
S" common:messaging.4th" EXEC
MSG-CD-INIT