FABRIC.md: resolve item 1.7 -- VM-Stadium nesting depth is Kconfig-tunable, default 2

Punch list §25 item 1.7 complete.
Bounded rather than permanently prohibited, consistent with item 1.1's
treatment of containment depth. Default 2 matches §21's already-decided
two-level structure; enforced by explicit refusal at VM-birth time if a
birth would exceed the configured depth.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-08-04 10:35:36 -04:00
co-authored by Claude Sonnet 5
parent 015333e8b8
commit 4fd9420ecf
+27 -9
View File
@@ -1508,14 +1508,26 @@ decides where work goes; that remains capability-based routing.
Her mass is still whatever §20.4 resolves for VMs generally. Pinning governs whether she
can depart, not how much room she takes.
4. **Does the nesting recurse further?** A VM's Stadium holds patrons; if one of those
patrons were itself a VM, the structure is a tree rather than two levels. Nothing
currently requires this, and §11 would call it speculative generality — but it should be
ruled out deliberately, since the boot order in §6 does not forbid it. Still open as
item 1.7. **Not the same question as §8's `contains` chains (item 1.1, resolved)** — those
are same-Stadium patron-holds-patron relationships, bounded to depth 5, and do not create
a second Stadium. This item is specifically about a patron *being* a VM with its own
nested Stadium underneath it.
4. ~~**Does the nesting recurse further?**~~ **RESOLVED by item 1.7 (§25.2), 2026-08-04.**
A VM's Stadium holds patrons; if one of those patrons were itself a VM, the structure is
a tree rather than two levels. Nothing currently requires this, and §11 would call it
speculative generality — but it should be bounded deliberately, since the boot order in
§6 does not forbid it.
**Not the same question as §8's `contains` chains (item 1.1)** — those are same-Stadium
patron-holds-patron relationships, bounded to depth 5, and do not create a second
Stadium. This is specifically about a patron *being* a VM with its own nested Stadium
underneath it.
**Resolution: bounded by a Kconfig-tunable cap, default 2 — not a hard "never."**
Consistent with how item 1.1 treated its own depth question rather than declaring a
permanent architectural prohibition. 2 matches what §21 already decided and what already
exists: the outer Stadium (patrons: VMs) and each VM's own inner Stadium (patrons: words,
blocks, ACLs, messages). Nothing today drives a third level, so 2 is the honest default,
not a padded estimate. The cap is enforced explicitly at VM-birth time — birthing a VM
whose own Stadium would sit at a depth beyond the configured cap is refused, the same
"explicit refusal over silent/emergent behaviour" discipline item 1.5 used for the outer
bound — rather than left as an unstated assumption nothing checks.
---
@@ -2401,9 +2413,15 @@ document and committing that amendment as its own item.*
> collapse to heat alone, discarding the starved-vs-small diagnostic that's the entire
> point of §20.4. Full argument in §20.4.
- [ ] **1.7 — Rule out recursion beyond two levels** — deliberately, not by omission.
- [x] **1.7 — Rule out recursion beyond two levels** — deliberately, not by omission.
*Refs:* §20.5 #4.
> **RESOLVED 2026-08-04 — Kconfig-tunable cap, default 2.** Not a hard prohibition:
> bounded, same treatment as item 1.1's containment depth. 2 matches §21's already-decided
> two-level structure (outer VM Stadium, per-VM inner Stadium). Enforced explicitly at
> VM-birth time — a birth that would exceed the configured depth is refused. Full argument
> in §20.5 #4.
- [ ] **1.8 — Block content change at migration.** A resident block whose content changed
has a different hash on the way out. State the hand-off. *Refs:* §24.6 #1.