Add diagnostic scan cross-check of the Hermes counters -- FABRIC-3.6.md task 2.8
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
2a2bf6eb35
commit
feace42397
+18
-1
@@ -712,8 +712,25 @@ Hestia; headless policy intact.
|
||||
|
||||
**Phase 2 gate: passed** (2.7 holds on all three arches). Remaining Phase 2 work is 2.8
|
||||
(diagnostic scan cross-check).
|
||||
- [ ] **2.8** — Scan-based cross-check of the counters, diagnostics only, off the hot path
|
||||
- [x] **2.8** — Scan-based cross-check of the counters, diagnostics only, off the hot path
|
||||
(§XXXVII.4). *Check:* scan agrees with counters.
|
||||
2026-09-21 · `logs/20260921-083638/amd64/`, `logs/20260921-083950/aarch64/`,
|
||||
`logs/20260921-084314/riscv64/` — all print `Scan cross-check (counters vs arena): PASS`
|
||||
with identical `scan_held_before_decay=8192`, `scan_held_after_decay=8148`; Stage B and
|
||||
the main self-test still `PASS`, `audit_failures=0`, zero `UNKNOWN WORD`, `dict_hash`
|
||||
triple unmoved and identical across ISAs.
|
||||
|
||||
Added `sk_hermes_scan_held()` (walks the arena, sums live Stadium-cell heat of in-use
|
||||
messages, reports the live count) and `sk_hermes_scan_check()` (scan == `held`, exact).
|
||||
Called only from the self-test, never from alloc/release/decay. The check runs at rest
|
||||
(0 live), mid-hold (4 live, 4×2048 = 8192), after decay (8148 = 8192 − 4×11) and after
|
||||
release (0), with a vacuity guard (non-zero mid-hold, strictly less after decay).
|
||||
|
||||
Limit, stated: the scan reads the same Stadium cells the counters were derived from, so
|
||||
it verifies the counters against the arena, not the Stadium cells against ground truth;
|
||||
the latter is `stadium_conserved()`'s job (2.7).
|
||||
|
||||
**Phase 2 is complete (2.1–2.8).** Phase 3 remains blocked on B1, B2, B4.
|
||||
|
||||
## Phase 3 — Cutover — **BLOCKED**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user