Phase 5 close-out: Isabelle pass, doc sweep, SBOM, version bump (FABRIC-3.6.md tasks 5.1-5.4)
5.1: Isabelle/HOL pass (52 theories, clean) -- restated the boundary rather than just citing the green build: proof/ scope was already entirely outside this reshuffle's footprint (src/starkernel/, capsules/*.4th), so the boundary is unchanged, not moved. 5.2: Documentation sweep. CLAUDE.md's stale WIP banner and Tripod fleet description updated now that Phases 0-4 have actually landed (Hera/ Artemis/Hestia, no Hermes). MANIFEST.md rides the strip -- hermes/init.4th's block table replaced with a deletion note, init.4th/doe-campaign.4th/ hestia/init.4th entries corrected to match the post-strip live files. Confirmed the TRIPOD.md/0.1 contradiction was already resolved (2026-08-13). Settled the superseded-docs call explicitly: archive as-is, do not rewrite. Fixed experiments/bare_metal/README.md's block-size framing (still said 1024-byte budget; real rule is 64 chars x 16 lines). K-qualification checked clean against the two living documents; full retroactive sweep of the closed archival FABRIC corpus explicitly declined as disproportionate. 5.3: make sbom. Installed syft (user-local, approved). Found and fixed a real Makefile bug while at it -- the sbom target hardcoded --source-name StarForth, so DocumentName was wrong even after regenerating. 5.4: LITHOS_VERSION 2.0.0 -> 2.1.0, engine VERSION 3.1.0 -> 3.2.0 (minor, per the dictionary-visible-only rule). Replaced the stale version-comment block in Makefile.starkernel (had the odd/even LTS rule backwards) and docs/lithosananke/ROADMAP.md's retired versioning-policy section with the ratified ladder. Verified on all three architectures; riscv64's first pass hit a transient virtio_blk timeout during boot-time Zuse genesis mint, reported and confirmed non-reproducing on an immediate clean retry. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
3e201c82a5
commit
a4ad14aec6
+63
-65
@@ -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`, `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 |
|
||||
| 2049 | No | Hera VM init: `VM-TREE`/`VM-PARENT`/`VM-CHILDREN`; loads `ACL.4th`, `block-acl.4th`, `zuse-eligibility.4th`, `lib.4th`. **Corrected 2026-09-19 (three times)** — 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. Third pass (2026-09-22, FABRIC-3.6.md Phase 4 Stage E): `common:messaging.4th` + `MSG-CD-INIT` **removed** — the file itself is deleted (see "Deleted capsules" below); every FORTH-owned message type was cut over to kernel-Hermes first (Phase 3) |
|
||||
| 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 |
|
||||
@@ -317,74 +317,51 @@ Blocks: **4060–4065**
|
||||
matched the file at any point on record. Rewritten to match the actual
|
||||
content, migrated this pass off the deleted `compudynamics.4th`/
|
||||
`fleet-k.4th` primitives onto the `VM-PHYSICS-STATUS`/`VM-CONSERVED?`
|
||||
mechanism — see `capsules/hermes/init.4th` block 4153 and
|
||||
mechanism — see (historical) `hermes/init.4th` block 4153 and
|
||||
`capsules/artemis/init.4th` block 4852 for the companion `LOAD-DOE` fix
|
||||
this migration also required.
|
||||
|
||||
**Note (2026-09-22, FABRIC-3.6.md Phase 4 Stage E):** `SETUP-HERMES` and every
|
||||
Hermes touch in `PHASE1-DOE`/`CD-TICK`/`SMOKE-CAMPAIGN` removed — Hermes no
|
||||
longer exists. Every block below is now Artemis-only.
|
||||
|
||||
| Block | Immutable | Justification |
|
||||
|-------|-----------|---------------|
|
||||
| 4060 | No | `SETUP-HERMES`/`SETUP-ARTEMIS`/`SETUP-VMS`: `BIRTH` + remote `LOAD-DOE` VM-EXEC per child VM. Not immutable: setup sequence may grow |
|
||||
| 4061 | No | `PHASE1-DOE`: real per-VM `DOE-WORK` baseline touches. Historical note: dead `CD-WORK` (index-dispatch, deleted VM-HERA/HERMES/ARTEMIS constants) removed here 2026-07-08 |
|
||||
| 4062 | No | `CD-TICK`/`CD-DOE`: one real fleet-touch pass (`VM-EXEC "DOE-WORK"` on Hermes+Artemis), looped N times. `CAMPAIGN-STATUS`: `VM-PHYSICS-STATUS` + `VM-CONSERVED?` check. Not immutable: workload/status content may evolve |
|
||||
| 4060 | No | `SETUP-ARTEMIS`/`SETUP-VMS`: `BIRTH` + remote `LOAD-DOE` VM-EXEC on Artemis. Not immutable: setup sequence may grow |
|
||||
| 4061 | No | `PHASE1-DOE`: real per-VM `DOE-WORK` baseline touch, Artemis only. Historical note: dead `CD-WORK` (index-dispatch, deleted VM-HERA/HERMES/ARTEMIS constants) removed here 2026-07-08 |
|
||||
| 4062 | No | `CD-TICK`/`CD-DOE`: one real fleet-touch pass (`VM-EXEC "DOE-WORK"` on Artemis), looped N times. `CAMPAIGN-STATUS`: `VM-PHYSICS-STATUS` + `VM-CONSERVED?` check. Not immutable: workload/status content may evolve |
|
||||
| 4063 | No | `CAMPAIGN`: full campaign — baselines then 30 real fleet touches |
|
||||
| 4064 | No | `SMOKE-CAMPAIGN`: 1-rep seed-1959 smoke test + 16 real fleet touches |
|
||||
| 4065 | No | `THREE-VM-CAMPAIGN`: loads `doe.4th` locally on Hera, then 48 real fleet touches, all three VMs as Compudynamics peers |
|
||||
|
||||
### `hermes/init.4th` — Hermes VM (messenger)
|
||||
### `hermes/init.4th` — DELETED 2026-09-22 (formerly Hermes VM, the messenger)
|
||||
|
||||
Blocks: **4100–4109, 4114–4121, 4142–4153**
|
||||
**Deleted, FABRIC-3.6.md Phase 4 Stage E (task 4.1).** Formerly blocks
|
||||
**4100–4109, 4114–4121, 4142–4153** (gaps 4110–4113 and 4122–4141 were always
|
||||
Artemis's, hard-locked, never Hermes's — see the `artemis/init.4th` entry below,
|
||||
unaffected by this deletion). Every FORTH-owned message type this file's
|
||||
`messaging.4th` companion implemented (`BLK-ATTACH-EVENT`, `CONSOLE-CMD-EVENT`,
|
||||
`ELEVATE-REQUEST`) was cut over to kernel-Hermes first (Phase 3, tasks 3.8–3.10),
|
||||
verified live on all three architectures at each step; only then was the Hermes
|
||||
VM itself, this capsule, and `capsules/common/messaging.4th` removed. Full
|
||||
three-architecture acceptance for the deletion: `logs/20260922-181141/amd64/`,
|
||||
`logs/20260922-181753/aarch64/`, `logs/20260922-182136/riscv64/` — zero
|
||||
`UNKNOWN WORD`, identical `dict_hash` across all three. See FABRIC-3.6.md's own
|
||||
Phase 4 entry for the full account, including one found-not-fixed collateral
|
||||
defect (`SEND-ELEVATE-REQUEST`, this file's own former caller into
|
||||
`zuse-eligibility.4th`'s `ELEVATE-GRANT`, is now unreachable — Captain Bob's
|
||||
2026-09-22 decision: leave it, Phase 8 PKI will build its own entrypoint).
|
||||
Former blocks 4100–4153 (ex-Artemis-gaps) are now UNASSIGNED — see Unassigned
|
||||
Ranges below. The per-block justification table this section used to carry
|
||||
(arena allocator ABI, message/channel field accessors, the VM-name routing
|
||||
table, channel negotiation, broadcast) is not reproduced here; it is historical
|
||||
detail about deleted code, recoverable from git history (`git show
|
||||
<pre-strip-commit>:capsules/hermes/init.4th`) if ever needed again.
|
||||
|
||||
Gap 4110–4113 = Artemis. **HARD LOCKED. Never touch from Hermes side.**
|
||||
Gap 4122–4141 = Artemis (extended — see below). Never touch from Hermes side.
|
||||
|
||||
| Block | Immutable | Justification |
|
||||
|-------|-----------|---------------|
|
||||
| 4100 | Yes | Hermes constants: event codes, channel states, node sizes, arena sizes, MSG-DELIVERED. Immutable: changing node size constants corrupts all arena math |
|
||||
| 4101 | Yes | Arena CREATE: MSG-ARENA CH-ARENA MBR-ARENA; free-list roots; MSG-SEQ CH-ACTIVE. Immutable: CREATE allocates memory at compile time; re-running changes VM memory layout |
|
||||
| 4102 | Yes | MSG-INIT-FREE + CH-INIT-FREE. Immutable: free-list init is called once from CD-INIT; structure change breaks allocator |
|
||||
| 4103 | Yes | MBR-INIT-FREE + MSG-ALLOC + MSG-FREE-NODE. Immutable: allocator ABI; MSG-ALLOC is called by every MSG-SEND |
|
||||
| 4104 | Yes | CH-ALLOC + CH-FREE-NODE + MBR-ALLOC + MBR-FREE-NODE. Immutable: same allocator ABI constraint |
|
||||
| 4105 | Yes | Message field accessors (MSG-TYPE@/! through MSG-SEQ@/!). Immutable: field offsets are load-bearing; changing breaks every accessor caller |
|
||||
| 4106 | Yes | Channel + member accessors (CH-ID@/! through MBR-VM@). Immutable: same field offset constraint |
|
||||
| 4107 | No | VARIABLE MSG-LAST-MSG + IDX>NAME + MSG-DELIVER. Not fully immutable: MSG-DELIVER may evolve for async model. IDX>NAME now a table lookup over VM-NAME-ADDRS/LENS (see 4142) |
|
||||
| 4108 | No | MSG-SEND. Not immutable: send protocol may evolve |
|
||||
| 4109 | No | MSG-REAP. Ordering bug fixed (`8ca0cda2`) — type cleared before free-node prepend |
|
||||
| — | — | 4110–4113: ARTEMIS. NEVER TOUCH. |
|
||||
| 4114 | No | VARIABLE CH-SCAN + CH-COOL-ALL + CH-TOTAL-HEAT. Not immutable: channel cooling may evolve |
|
||||
| 4115 | No | CH-REAP-SAFE. Not immutable: channel reaping logic may evolve |
|
||||
| 4116 | No | VARIABLE COMMON-CH + COMMON-INIT + HERMES-TICK. Not immutable: HERMES-TICK drives the event loop; may grow |
|
||||
| 4117 | No | EVENT-EMIT + EVENT-WAIT + EVENT-DRAIN (backward compat). Not immutable: EVENT-WAIT is a diagnostic peek only per HERMES.md |
|
||||
| — | — | 4118: reserved, currently empty (former HERA-NOTIFY-SPAWN/KILL, removed `9323f776` — notification is automatic via `vm_physics_init`/`retire`) |
|
||||
| 4119 | No | CH-MINT-ID + CH-REQUEST. Not immutable: channel negotiation protocol may expand (multi-party invite deferred) |
|
||||
| 4120 | No | CD-INIT. Not immutable: init sequence may grow |
|
||||
| 4121 | No | MSG-ACK-LAST + MSG-NACK-LAST. Not immutable: NACK-requeue (reduced heat, retry) deferred; block may need extension |
|
||||
| — | — | 4122–4141: ARTEMIS (extended). NEVER TOUCH. |
|
||||
| 4142 | No | VM name routing table: VM-NAME-ADDRS/LENS + VM-NAME-REG + VM-NAMES-INIT. Not immutable: table-driven, grows via VM-MAX |
|
||||
| 4143 | Yes | MSG-CH@/! + MSG-ORIG-TYPE@/! + MSG-NACKED. Immutable: field offset constraint, same as 4105 |
|
||||
| 4144 | No | MSG-SEND. Not immutable: send protocol may evolve |
|
||||
| 4145 | No | MSG-TOTAL-HEAT + MSG-REDELIVER-NACKED. Not immutable: cooling/redelivery logic may evolve |
|
||||
| 4146 | No | MSG-DELIVER-ALL. Not immutable: delivery logic may evolve |
|
||||
| 4147 | No | HERMES-K + WELCOME. Not immutable: may grow |
|
||||
| 4148 | No | CH-ACCEPT + CH-CONFIRM + CH-CLOSE. Not immutable: channel negotiation protocol may expand |
|
||||
| 4149 | No | HERMES-STATUS (MSG-USED + CH-USED). Not immutable: status may expand |
|
||||
| 4150 | No | Member management: MBR-NEXT!/VM! + CH-ADD-MBR + HERMES-MSG-TEST. Not immutable: may grow |
|
||||
| 4151 | No | Phase 2 real multi-member broadcast: MSG-BROADCAST + BC-* variables. Not immutable: broadcast protocol may expand |
|
||||
| 4152 | No | Phase 2 COMMON-CH membership + test: BCAST-GOT/BCAST-RECV/REGISTER-COMMON-MEMBERS/SEND-BROADCAST-TEST. Not immutable: test harness may grow |
|
||||
| 4153 | No | `LOAD-DOE` ( -- ): `S" doe.4th" EXEC`. Added 2026-07-08 — `doe-campaign.4th`'s `SETUP-HERMES` calls this remotely so Hermes gets `DOE-WORK`; was missing entirely before this pass, so `doe-campaign.4th` could never have worked even pre-dating the VM-fleet-physics redesign. Not immutable: trivial wrapper |
|
||||
|
||||
**2026-07-05 collision fix:** blocks 4142–4150 were previously numbered
|
||||
4122–4131 (interleaved with the blocks below them in this list), directly
|
||||
colliding with Artemis's real block range. The collision was introduced
|
||||
`fca7b09a` (Jul 1) when the VM-name routing table was added without
|
||||
checking MANIFEST.md, and went undetected for 4 days because `mkcapsule`'s
|
||||
build path doesn't run conflict detection (only `--manifest` does). Found
|
||||
via `mkcapsule --manifest` while syncing this document; renumbered into
|
||||
genuinely free space and reverified with a clean amd64 TRIPOD-TEST boot
|
||||
(`PASS: fleet K`, `PASS: Hermes liveness`, `PASS: Artemis ready`, `K soak`,
|
||||
`PASS: E2E msg flow` — Hermes's kill/rebirth soak test reproduced an
|
||||
identical `dict_hash` before and after, confirming the reload path is now
|
||||
clean). amd64-only per the rev-f iteration rule; three-arch not yet run for
|
||||
this fix. See Conflict Register entry C5.
|
||||
**2026-07-05 collision fix (historical, still relevant to Conflict Register
|
||||
C5 below):** blocks 4142–4150 were previously numbered 4122–4131, directly
|
||||
colliding with Artemis's real block range, introduced `fca7b09a` (Jul 1),
|
||||
found and resolved via `mkcapsule --manifest`. See Conflict Register entry C5.
|
||||
|
||||
### `artemis/init.4th` — Artemis VM (flat pool disk manager v2)
|
||||
|
||||
@@ -436,17 +413,14 @@ Hermes (see above). The table below reflects the actual current footprint.
|
||||
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 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).
|
||||
FABRIC-3.5.md §II/§IV). Reconstitutes the Tripod as Hera/Artemis/Hestia. 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 |
|
||||
| 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 |
|
||||
| 4987 | No | **Rewritten 2026-09-22, FABRIC-3.6.md Phase 4 Stage E.** Originally joined `COMMON-CH` on slot 11 (Hera/Hermes/Artemis held 0/1/2, identities held 3–10, `messaging.4th:78-85`) — that whole `COMMON-CH` concept no longer exists, `messaging.4th` is deleted. Now just `S" lib.4th" EXEC` + `LOG-INFO" Hestia: ready"` + `STARTUP-BANNER`. Not immutable: startup sequence may grow |
|
||||
|
||||
### Deleted capsules (historical)
|
||||
|
||||
@@ -472,6 +446,17 @@ removal also took `messaging.4th`'s `EVENT-EMIT`/`EVENT-WAIT`/
|
||||
`EVENT-DRAIN` (former block 5030) with it, its only live caller. Their
|
||||
former ranges are now UNASSIGNED (see Namespace Map).
|
||||
|
||||
`hermes/init.4th` (formerly 4100–4109, 4114–4121, 4142–4153) and
|
||||
`common/messaging.4th` were deleted 2026-09-22 (FABRIC-3.6.md Phase 4 Stage E,
|
||||
tasks 4.1/4.3), the final step of the Tripod/kernel reshuffle — the Hermes VM
|
||||
itself and its FORTH messaging layer, superseded by kernel-Hermes
|
||||
(`src/starkernel/vm/kernel_hermes.c`) after every live message type was cut
|
||||
over in Phase 3 (see the `hermes/init.4th` entry above for the full account).
|
||||
Their former ranges are now UNASSIGNED (see Namespace Map). This is the same
|
||||
"cut over first, delete after, one commit per Category B item, verified on all
|
||||
three architectures" discipline `compudynamics.4th`/`fleet-k.4th` and
|
||||
`common/msg.4th`/`process.4th` were deleted under above.
|
||||
|
||||
---
|
||||
|
||||
## Unassigned Ranges
|
||||
@@ -492,7 +477,8 @@ former ranges are now UNASSIGNED (see Namespace Map).
|
||||
| 4051–4054 | UNASSIGNED | lib.4th extension space |
|
||||
| 4055–4059 | UNASSIGNED | Former `common/msg.4th` range (deleted 2026-09-19, FABRIC-3.6.md task 0.2) |
|
||||
| 4066–4099 | UNASSIGNED | doe-campaign extension space |
|
||||
| 4154–4199 | UNASSIGNED | Hermes extension space (post-4153) |
|
||||
| 4100–4153 | UNASSIGNED | Former `hermes/init.4th` range (deleted 2026-09-22, FABRIC-3.6.md Phase 4 Stage E task 4.1). Excludes 4110–4113/4122–4141, which were always Artemis's, hard-locked, unaffected |
|
||||
| 4154–4199 | UNASSIGNED | Hermes extension space (post-4153), now moot along with 4100–4153 above |
|
||||
| 4200–4299 | UNASSIGNED | Former compudynamics.4th range (deleted `9323f776`) |
|
||||
| 4300–4399 | UNASSIGNED | Former `process.4th` range (deleted 2026-09-19, FABRIC-3.6.md task 0.3) |
|
||||
| 4400–4405 | UNASSIGNED | Former fleet-k.4th range (deleted `9323f776`) |
|
||||
@@ -551,3 +537,15 @@ before this doc pass. Not re-verified this pass: whether every other
|
||||
still-unflagged row elsewhere in this document matches source exactly —
|
||||
this was a targeted correction of the rows touched by recent work plus
|
||||
`doe.4th`/`ACL.4th`, not a full line-by-line re-audit of all ~250 blocks.*
|
||||
|
||||
*Doc-debt pass, 2026-09-22 — MANIFEST.md updated to ride the Tripod/kernel
|
||||
reshuffle's Category B strip (FABRIC-3.6.md Phase 4 Stage E, task 5.2 close-out
|
||||
sweep, §XXII.5). `hermes/init.4th`'s block-by-block table replaced with a
|
||||
deletion note (git history retains the detail); `common/messaging.4th`'s
|
||||
deletion recorded in "Deleted capsules"; `init.4th` block 2049,
|
||||
`doe-campaign.4th` blocks 4060–4062, and `hestia/init.4th` block 4987 updated
|
||||
to match the post-strip live files (verified by direct read, not by this
|
||||
document's own prior claims, same discipline as every other pass here).
|
||||
Former Hermes range (4100–4153, excluding Artemis's hard-locked 4110–4113/
|
||||
4122–4141) marked UNASSIGNED. Not re-verified this pass: the ~230 other rows
|
||||
this strip didn't touch.*
|
||||
|
||||
Reference in New Issue
Block a user