FABRIC.md: unblock and restate acceptance for item 4.1
Records two decisions and restates item 4.1's Done-when criteria now that §17.7 is DECIDED: word identity maps to a Stadium cell via a kernel-side word_id -> cell_index table in stadium.c, not a new DictEntry field, keeping the shared vendored struct and dict_hash untouched; acceptance no longer leans on the old cache's HotwordsStats (being retired kernel-side, not extended) but on new Stadium-side counters, the hosted build staying unaffected, and a three-arch boot with dict_hash matching the pre-4.1 baseline. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
c0bbff21c9
commit
bd92c57834
@@ -3227,15 +3227,30 @@ document and committing that amendment as its own item.*
|
||||
(§11).*
|
||||
|
||||
- [ ] **4.1 — Hot words onto the Stadium.** Replaces the round-robin eviction with density
|
||||
ranking. Measurable before and after via `stats.evictions` / `stats.promotions`.
|
||||
*Refs:* §17.3.
|
||||
ranking, via the reservoir mechanism (§17.7) and a kernel-side `word_id → cell_index` map
|
||||
(no `DictEntry` change, decided 2026-08-05). *Refs:* §17.3, §17.7.
|
||||
|
||||
> **Blocked, 2026-08-04, before any code:** converting `execution_heat` into the Stadium's
|
||||
> `heat` field turned out not to be the simple `q48_from_u64()` scale first assumed —
|
||||
> Captain Bob wants real word-level conservation, mirroring §19.1's fleet invariant, and
|
||||
> that conflicts with the existing absolute promotion threshold and moves `dict_hash`. See
|
||||
> §17.7 (LEANING, paper only) for the open questions. This item does not resume until §17.7
|
||||
> reads DECIDED.
|
||||
> **Unblocked 2026-08-05 — §17.7 reads DECIDED.** Acceptance restated below now that the
|
||||
> mechanism itself changed; the original "measurable via `stats.evictions`/
|
||||
> `stats.promotions`" presumed reusing the old cache's `HotwordsStats`, which this item
|
||||
> retires on the kernel side rather than extends.
|
||||
>
|
||||
> *Done when:*
|
||||
> - Kernel builds only: `hotwords_cache_lookup()`/`hotwords_cache_evict_*()` call sites in
|
||||
> `dictionary_management.c` are bypassed under `__STARKERNEL__`, per §17.3's resolution —
|
||||
> the old cache's *effect* retires there; its code stays compiled and untouched.
|
||||
> - Word dispatch feeds the Stadium: an already-resident word gets the reservoir-quantum
|
||||
> touch (§17.7); a non-resident word attempts `stadium_admit()` with a starter-quantum
|
||||
> candidate on every dispatch (Option B).
|
||||
> - New Stadium-side promotion/eviction counters exist (same shape as
|
||||
> `HotwordsStats.promotions`/`.evictions`, not that struct) and are observable via a
|
||||
> diagnostic word or boot console output.
|
||||
> - Hosted builds are unaffected — `execution_heat`, the old cache, and its stats keep
|
||||
> working exactly as today; no shared-source behaviour changes for hosted.
|
||||
> - All three architectures boot to `ok>`/`zuse)ok>` with logs under `logs/`. `dict_hash`
|
||||
> is expected to still match the pre-4.1 baseline exactly, since it hashes only name and
|
||||
> `execution_heat`, and neither changes under this item — a mismatch means something
|
||||
> leaked into the hashed fields and is a regression, not something to explain away.
|
||||
- [ ] **4.2 — Hermes native on the Stadium.** The proving ground; produces the effort
|
||||
number. *Refs:* §10.
|
||||
- [ ] **4.3 — Console.** Settles 1.11 as part of the work. *Refs:* §17.5.
|
||||
|
||||
Reference in New Issue
Block a user