feat(runtime): implement phases 1 and 2

This commit is contained in:
2026-09-05 12:59:15 -07:00
parent 75b4da0df4
commit c010e415a2
27 changed files with 4172 additions and 5 deletions
@@ -0,0 +1,52 @@
# Phase 2 common grammar — automated evidence
**Date:** September 5, 2026
**Artifact:** `XZBT.html`
**SHA-256:** `8ea318535e97b25b51760b6c0e59e1a5af89d3f429f079de3b87230165008517`
**Result:** Phase 2 implementation and automated acceptance passed.
## Delivered
- typed parameter and simulation-state stores with strict coercion rejection and declared bounds;
- separately persisted parameter snapshots, with state recreated for each performance;
- read-only time, audio-analysis placeholder, pointer, viewport, and scenario-active signals;
- literal, reference, bounded random, weighted-choice, and safe-operation ValueSpec evaluation;
- comparison and short-circuit logical ConditionSpec evaluation;
- deterministic fixed-step common-grammar performance driver with the GC4 stall bound;
- same-tick dependency resolution for parameter/state bindings;
- numeric transforms, clamps, exact one-pole smoothing, conditional disable, and clean re-enable;
- ordered common action execution with `when`, `chance`, `critical`, persistent state `set`, and temporary `override`;
- numeric set transitions with the four standard easing modes;
- override runtime IDs, priority/activation-sequence precedence, scenario/duration lifetimes, attack/release transitions, owner release, and live lower-value restoration;
- generic inspection controls and resolved-value placeholders in the subject-neutral application shell;
- two updated minimal exhibits exercising conditional and unconditional common-grammar bindings.
Subsystem-specific `sound`, `event`, `spawn`, `remove`, and `control` execution remains unavailable until the owning audio, visual, event/cadence, and scenario phases define and implement their capability contracts. The common executor rejects those actions explicitly instead of approximating their behavior.
## Automated verification
`npm run test:phase2` passed 9 of 9 production tests:
1. production validator agreement with the GC2 fixture matrix;
2. ValueSpec references, random values, weighted choice, safe operations, and arity failure;
3. ConditionSpec composition, short-circuiting, and strict operand typing;
4. same-tick binding dependency order and exact smoothing;
5. conditional binding disable and re-enable behavior;
6. document-order state actions and parameter mutation rejection;
7. deterministic state transitions and duration parsing;
8. override precedence, stored-edit preservation, and live-base release;
9. duration expiry, compatible stored parameters, and performance disposal.
Regression verification also passed:
- Phase 1 production/build tests: 6 of 6
- GC2 contract oracle: 12 of 12
- GC3 contract oracle: 8 of 8
- GC4 contract oracle: 7 of 7
- GC5 contract oracle: 8 of 8
The standalone build test compiled the generated script and confirmed byte-identical clean outputs with no external runtime script or stylesheet references.
## Remaining cross-phase observation
The earlier direct-file browser restriction still prevents an agent-run full-browser restart check. Phase 1’s user-observed two-fixture import/cache/reopen gate therefore remains open; it does not change the passing Phase 2 semantic results above.