docs(v4): MESH step 7 done -- a second unit, PAUSE, RESUME, KILL; acceptance

MESH.md step 7: what was built, the tests, the (DOWN) mend, the traced
(LOST) finding; 9a.5: a centre killed mid-birth, and birth authority not
yet tied to identity.  v4/README.md: births follow v3.

Acceptance at this commit's code: amd64, aarch64, riscv64 clean qemu, v4:
ok>, POST 538/538, dict_hash=0x248b4edc47f4357e on all three; test-32 0
failures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
rajames
2026-10-16 17:46:49 -04:00
co-authored by Claude Opus 5.5
parent 4be9f37c12
commit 9382df69e5
8 changed files with 533 additions and 0 deletions
+53
View File
@@ -1474,6 +1474,18 @@ clears it if it points at or above the sealed system.
its access records at boot (`V3-PARITY.md` section 1, row 8), so there
is nothing to copy yet. Stated, not stood in for.
- **A mesh node's own memory size** (D-4, deferred).
- **Who may birth is checked by the birth graph only, not by identity or
access control.** Any node can ask the kernel for a birth by making the
word itself (`-7 KERNEL-WORD X`), so a lockdown of its words cannot stop
it. In v3 a VM minted with the FORTH-79 personality has `BIRTH` denied
by its access records, and may birth only by the allowlist's deliberate
carve-out (`FABRIC-3.md` §XXV). Harmless while v4 has no users; when
identity comes (`ENGINE.md` step 8) the kernel must also check the
asker's identity or access records before it births. Recorded
2026-10-16, Captain Bob.
- **A centre killed while it is still birthing its unit** leaves the nodes
it had asked for and not yet given the system. They wait, empty, until
Hera kills them by number. v3 has no such state: a VM is born whole.
- **The products**: steps 8 and 9.
### 9a.6 Acceptance
@@ -2051,6 +2063,47 @@ Each is tested, committed and pushed before the next.
7. **A second unit; scaling while running; sleep, wake and kill by
command.** Designed 2026-10-16: section 9a.
**Done 2026-10-16, in the fabric under test; the products are still one
node each until steps 8 and 9.** Plan
`docs/v4.0.0/plans/2026-10-16-mesh-step7-second-unit.md`.
- *The kernel* (`v4/include/v4/manage.h`, `v4/src/manage.c`): the
registry of live nodes, their numbers, places and parents; the
requests at fixed numbers, -6 to -18; who may ask what (9a.4).
`v4/tests/test_manage.c`, 41 checks at both widths.
- *The system* (`capsules/v4/sys/quit.f18`, `system.f18`):
`(GONE-HOOK)`; `(DOWN)` calls the word there when a GONE is believed,
and puts `(ONE)` back after it; `COLD` takes out a hook it forgets.
- *The capsules*: `capsules/v4/centre.4th` (`BIRTH-AS`, `BIRTH`, `UNIT`,
`GONE-DOWN`, a node's table of the nodes it birthed) and
`capsules/v4/hera.4th` (`KILL`, `PAUSE`, `RESUME`, `UNIT-KILL`,
`CENTRE`).
- *Tests.* `v4/tests/test_host_unit.c`, 125 checks: an outer node births,
and may not kill, pause or wire what it did not birth; Hera's unit
born again, and `20 CENTRE` while one of it is busy, the second unit's
four with the first's dictionary hash; text across the two units and
its answer; ten nodes idle, their anti-clocks still; `PAUSE` and
`RESUME` of a node in a loop, text sent to it waiting until it is
woken; GONE down the graph ending a wait in the second unit; a forged
GONE not believed; `UNIT-KILL`, after which the first unit carries on.
`v4/tests/test_host_mesh.c`, 253 checks: a GONE handed on, and the
hand-on disturbed at every step, node 11 or 12 removed or the wire
cut. `v4/tests/test_host_depth.c`, a path "AWAIT ended by a GONE that
is handed on": works to 26 values and 21 calls deep, then a stack
error and nothing else, at both widths.
- *Found by the depth sweep, and mended:* the hook was jumped to, and a
hook that sent a message about another node overwrote `(ONE)`, which
`AWAIT` reads after believing a GONE: the wait went on. Shown to fail
with the old `(DOWN)`.
- *Traced, not a defect:* Hera's `(LOST)` is 2 after the kill tests of
step 6c -- the two texts nodes 11 and 12 send the removed node 14,
which she has no way to: let go, counted, and refused back to their
senders (7d.4).
- *Verified.* `make -C v4 test test-32 sanitize hosted-check`;
`mkcapsule --lint capsules/`; three bare-metal boots,
`logs/20261016-144519` (amd64), `-144811` (aarch64), `-145220`
(riscv64): POST 538 of 538, `word_count=318`,
`dict_hash=0x248b4edc47f4357e` on all six systems (the system changed,
so the hash did); `make -C v4 test-32`, 0 failures.
8. **The hosted product is the five nodes**, on three ISAs: acceptance 1
to 5.
9. **The same on bare metal:** acceptance 6.