FABRIC.md: new prerequisite item 4.1a -- quota granting for Hermes's birth
Punch list §25 new item inserted before 4.2 (scoping only, no code). Found while scoping 4.2: no quota-granting mechanism exists at all -- quota_slot_for_vm() refuses every non-Hera vm_id by design, and both stadium_admit()'s doc and item 3.2's DONE note defer per-VM free lists to "when Hera assigns a VM its quota," which nothing builds. Distinguished from item 1.3's still-open recurring capacity-transfer arbitration: this is Hermes's one-time initial grant at birth, same shape as Hera's own whole-pool grant at stadium_boot_init(), not an instance of the open recurring loop. Ruled: reservoir is not split (Hermes gets her own fresh Q48_ONE, per-VM conservation per stadium.c's own invariant comment); cell count is an even split of Hera's current free list, touching no resident (including pinned cell 0). 4.2 is marked blocked on this item. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
4b26be90c3
commit
edfc246579
@@ -3300,8 +3300,46 @@ document and committing that amendment as its own item.*
|
||||
> parity output — untouched, as designed. Stadium diagnostics also identical across all
|
||||
> three: `promotions=354 evictions=0`, `resident_sum=65536 reservoir=0 sum=65536
|
||||
> (Q48_ONE=65536)` — the conservation invariant closes exactly.
|
||||
- [ ] **4.1a — Quota granting: Hermes's birth grant.** New prerequisite item, inserted
|
||||
2026-08-05 while scoping 4.2 — found that no quota-granting mechanism exists at all.
|
||||
`quota_slot_for_vm()` refuses every `vm_id != 0` today, permanently, by design (item 3.5's
|
||||
note); `stadium_admit()`'s own doc and item 3.2's DONE note both defer per-VM free lists to
|
||||
"when Hera assigns a VM its quota," which nothing builds. Item 1.3 (§25.2) resolved *when*
|
||||
Hera arbitrates a capacity *transfer* between VMs that already hold quotas, but explicitly
|
||||
left "how much capacity moves" unresolved and out of scope (§22.5 #2) — that is the
|
||||
*recurring* mechanism, and stays open; this item is narrower: Hermes's one-time *initial*
|
||||
grant at birth, the same shape as Hera's own whole-pool grant at `stadium_boot_init()`, not
|
||||
an instance of the still-open recurring loop. *Refs:* §1.3, §22.3, §22.5 #2.
|
||||
|
||||
> **Ruled, 2026-08-05:**
|
||||
> 1. **Reservoir is not part of this.** `stadium.c`'s own comment states the conservation
|
||||
> invariant per-VM — `Σ(resident heat) + reservoir == Q48_ONE` for *that VM's own
|
||||
> quota* — not a shared pool split across VMs. Hermes gets her own fresh `Q48_ONE`
|
||||
> reservoir at birth, the same pattern as Hera's boot grant, not a fraction of Hera's.
|
||||
> Only cell count is actually open.
|
||||
> 2. **Cell split: even.** At Hermes's birth, half of whatever cells are currently on
|
||||
> Hera's free list move to a new quota slot for Hermes. Hera's residents — including
|
||||
> pinned cell 0 — are never touched; only her free list is split. No tuned constant: an
|
||||
> even split needs no threshold, consistent with §22's "no tuned threshold" elsewhere in
|
||||
> this design.
|
||||
>
|
||||
> *Done when:*
|
||||
> - A new `stadium_grant_quota(VMUuid vm_id)` (or equivalent, named at implementation
|
||||
> time) exists in `stadium.c`, callable at a baby VM's birth (`capsule_birth.c`).
|
||||
> - Splits Hera's free list evenly by cell count (±1 for odd counts), reassigns
|
||||
> `stadium_owner[idx]` for every cell that moves, and grants the new VM a fresh
|
||||
> `Q48_ONE` reservoir — verified by both VMs' independent conservation checks closing
|
||||
> exactly immediately after the grant, with zero residents on either side yet.
|
||||
> - Hera's own residents (including cell 0) are provably untouched — same cell count and
|
||||
> identities before and after the grant.
|
||||
> - Refuses (does not crash) if `vm_id` already holds a quota, or if the granting VM's
|
||||
> free list is empty.
|
||||
> - All three architectures boot to `ok>` with logs under `logs/`, `dict_hash` unchanged
|
||||
> from item 4.1's baseline (`0x3d4e1daf289da94f`) since this item touches no dictionary
|
||||
> word.
|
||||
- [ ] **4.2 — Hermes native on the Stadium.** The proving ground; produces the effort
|
||||
number. *Refs:* §10.
|
||||
number. *Refs:* §10. **Blocked on 4.1a** — Hermes cannot hold Stadium residents without a
|
||||
quota, and nothing grants one yet.
|
||||
|
||||
> **Two rulings taken before work starts, 2026-08-05:**
|
||||
> 1. **`stadium_owner[idx]` fix folded into this item's scope**, by explicit Captain Bob
|
||||
|
||||
Reference in New Issue
Block a user