Files
XZBT/docs/evidence/phase1/2026-09-05-runtime-skeleton.md
T

36 lines
2.1 KiB
Markdown

# Phase 1 runtime skeleton — automated evidence
**Date:** September 5, 2026
**Artifact:** `XZBT.html`
**SHA-256:** `8a444a17e06e3d2c4825fcb293004fde4da22c776154fba3d624cc50845c26c3`
**Result:** Implementation and automated verification passed; direct-file restart observation remains pending.
## Delivered
- deterministic modular-source build into one inline-script, inline-style HTML artifact;
- multi-file and drag/drop `.xzbt` loading;
- BOM-aware JSON parsing plus XZBT version, metadata, identifier, root-field, and seed validation;
- exhibit library and inert Phase 1 performance surface;
- prepare-before-teardown activation, complete disposal, and previous-exhibit recovery attempt;
- production `SeededRNG` using the frozen FNV-1a-32, SplitMix32, and `xoshiro128**` contract;
- IndexedDB definition cache and last-active-exhibit preference, with a visible session-only fallback;
- bounded structured diagnostics with severity, code, exhibit, section, object, property, and explanation fields;
- two minimal valid exhibits: fixed-seed and cryptographically randomized.
## Automated verification
`npm run test:phase1` passed 6 of 6 tests. Coverage includes both fixtures, malformed/version/metadata rejection, frozen GC4 PRNG vectors, identical-import no-op and restore, activation failure recovery, byte-identical clean builds, absence of external script/style dependencies, and generated-script compilation.
The existing in-process contract suites also passed unchanged:
- GC2: 12 of 12
- GC3: 8 of 8
- GC4: 7 of 7
- GC5: 8 of 8
`git diff --check` reported no whitespace errors.
## Open acceptance observation
The repository records that prior browser tooling was not permitted to navigate directly to a `file:` URL, and forbids substituting another browser surface or raw command as a workaround. Consequently, this record does not claim the final Phase 1 direct-file acceptance observation. A supported desktop Chromium user run still needs to import both files from `exhibits`, switch between them, close the full browser, reopen the same `XZBT.html`, confirm that both cached exhibits return and the last exhibit activates, and record the Phase 1 GC6 environment fields.