diff --git a/FABRIC.md b/FABRIC.md index 43df90c..fd7bfca 100644 --- a/FABRIC.md +++ b/FABRIC.md @@ -1724,10 +1724,29 @@ rule looks correct. regain capacity. One message-sized cell is itself derived, from §23.3's cell sizing rule ("size the cell so a typical message is exactly one cell"), not a second tuned constant — so the discipline this section wanted to preserve still holds with both terms in place. -2. **What arbitrates a transfer, concretely?** §7 says Hera. Under §22.3 a transfer is - arithmetic on two integers, so the mechanism is trivial — but *when* she does it, and on - what signal, is not yet stated. It should read off the density gradient (§22.1) rather - than a schedule. +2. ~~**What arbitrates a transfer, concretely?**~~ **RESOLVED by item 1.3 (§25.2), + 2026-08-04.** §7 says Hera. Under §22.3 a transfer is arithmetic on two integers, so the + mechanism is trivial — but *when* she does it, and on what signal, is not yet stated. + + **The cadence is the slow part, not a threshold.** Hera evaluates the density gradient + once per **capacity-tick** — a coarser, derived multiple of the virtual tick (§18.4). The + exact multiple is item 1.4's job, not fixed here. This is what gives "sustained density" + (§22.4) its actual meaning: anything shorter-lived than one capacity-tick interval cannot + trigger a transfer, without needing a magnitude threshold layered on top. + + **Whether to act, once she looks, is a pure comparison — no tuned threshold.** At each + capacity-tick, Hera finds the single densest and single least-dense live VM. If they + differ at all, a transfer is eligible. This is the same shape as §19.3's admission rule + ("denser than the least dense resident") — a comparison of two intrinsic numbers, not a + policy, so nothing needs inventing here. + + Both halves satisfy the tick-expressibility constraint item 1.3 states: the cadence is a + tick multiple, and the decision itself reads only heat and mass, never wall time. + + **What this does not resolve:** how much capacity moves per eligible transfer. §22.3 only + says the mechanism is "arithmetic on two integers"; neither this section nor item 1.3 + pins down the amount. Reported rather than invented — it can become its own item if + warranted, but is out of this item's scope. 3. **The exact timescale ratio** in §22.4. 4. **Does the outer Stadium's own capacity ever change?** §22 makes per-VM quotas elastic within a fixed total. Whether that total is itself fixed for the machine's lifetime is @@ -2280,7 +2299,7 @@ document and committing that amendment as its own item.* > leaves open for a VM with nothing pinned (zero quota means it can never receive the > message that would let it regrow). Full argument in §22.5 #1. -- [ ] **1.3 — What triggers a capacity transfer.** Hera arbitrates; on what signal, and how +- [x] **1.3 — What triggers a capacity transfer.** Hera arbitrates; on what signal, and how often. Should read the density gradient, not a schedule. **Constraint, not optional:** arbitration mutates patron mass, so §18.5's invariant binds it directly — *anything that influences patron state advances on tick count; wall-clock @@ -2289,6 +2308,15 @@ document and committing that amendment as its own item.* exists to remove, in a new place. Whatever 1.3 decides must be expressible in ticks. *Refs:* §22.5 #2, **§18.5**, §22.4. + > **RESOLVED 2026-08-04.** Hera evaluates once per capacity-tick (a coarser, derived + > multiple of the virtual tick — the multiple itself is item 1.4). At each capacity-tick + > she finds the single densest and single least-dense live VM; if they differ at all, a + > transfer is eligible — a pure comparison, no tuned threshold, same shape as §19.3's + > admission rule. Cadence carries the "sustained density" requirement; the decision itself + > is a comparison. Both are tick-expressible, never wall-clock. **Not resolved:** how much + > capacity moves per transfer — reported, not invented, out of this item's scope. Full + > argument in §22.5 #2. + - [ ] **1.4 — The heat/capacity timescale ratio.** The ordering is fixed (capacity slower); the ratio is not. *Refs:* §22.4, §22.5 #3.