Phase 5 step 2
All checks were successful
CI / React UI Build (push) Successful in 10s
CI / Native Windows Build And Tests (push) Successful in 2m39s
CI / Windows Release Package (push) Successful in 2m54s

This commit is contained in:
Aiden
2026-05-11 18:56:39 +10:00
parent 77590f4a62
commit 7740fe209c
5 changed files with 103 additions and 56 deletions

View File

@@ -7,8 +7,8 @@ Phase 1 named the subsystems. Phase 2 added the typed event substrate. Phase 3 m
## Status
- Phase 5 design package: proposed.
- Phase 5 implementation: Step 1 started.
- Current alignment: Phase 3 introduced the first pure composition boundary and transient OSC overlay owner, and Phase 5 now has a small `RuntimeStateLayerModel` inventory that names the current state categories. Committed runtime values are still physically stored through `RuntimeStore`/`LayerStackStore`, and transient OSC overlay state is still applied through render-facing helpers rather than through the final layered composition contract.
- Phase 5 implementation: Step 2 started.
- Current alignment: Phase 3 introduced the first pure composition boundary and transient OSC overlay owner. Phase 5 now has a small `RuntimeStateLayerModel` inventory that names the current state categories, and `RenderStateComposer` consumes a `LayeredRenderStateInput` whose fields make base persisted, committed live, and transient automation inputs explicit. Committed runtime values are still physically stored through `RuntimeStore`/`LayerStackStore`, and transient OSC overlay state is still applied through `RuntimeLiveState`.
Current live-state footholds:
@@ -16,7 +16,7 @@ Current live-state footholds:
- `RuntimeCoordinator` owns mutation validation, classification, accepted/rejected event publication, snapshot/reload follow-ups, and the policy switch between committed states and live snapshots.
- `RuntimeSnapshotProvider` publishes render-facing snapshots from committed runtime state.
- `RuntimeLiveState` owns transient OSC overlay bookkeeping, smoothing, generation tracking, and commit-settlement policy.
- `RenderStateComposer` combines base render states with live overlay state and returns final per-frame layer states plus settled commit requests.
- `RenderStateComposer` consumes `LayeredRenderStateInput`, chooses committed-live layer states over base-persisted layer states when both are supplied, applies transient automation on top, and returns final per-frame layer states plus settled commit requests.
- `RuntimeServiceLiveBridge` drains OSC ingress/completion queues and applies them to render live state during frame preparation.
- `RuntimeStateLayerModel` names the Phase 5 state categories and classifies current fields as base persisted, committed live, transient automation, render-local, or health/config state.
@@ -246,19 +246,18 @@ Initial target:
### Step 2. Name The Layered Composition Input
Introduce a named composition input model around the current `RenderStateCompositionInput`.
Introduce a named composition input model around the previous `RenderStateCompositionInput`.
Initial target:
- make base/committed/transient inputs visible in type names or field names
- keep `RenderStateComposer` behavior unchanged at first
- add tests that assert precedence with no GL
- [x] make base/committed/transient inputs visible in type names or field names
- [x] keep `RenderStateComposer` behavior unchanged at first
- [x] add tests that assert precedence with no GL
Possible outcomes:
- evolve `RenderStateCompositionInput`
- add a new `LayeredRenderStateInput`
- add a thin adapter that feeds existing `RenderStateComposer`
- [x] add a new `LayeredRenderStateInput`
- [ ] add a thin adapter if a later migration needs compatibility with the previous input shape
### Step 3. Make Reset And Reload Policy Explicit
@@ -366,9 +365,9 @@ Render-local resources such as temporal history, feedback buffers, readback cach
Phase 5 can be considered complete once the project can say:
- [ ] persisted, committed-live, and transient automation layers are named in code or clear read models
- [ ] final render-value precedence is explicit and covered by tests
- [ ] `RenderStateComposer` or its replacement consumes a layered input contract
- [x] persisted, committed-live, and transient automation layers are named in code or clear read models
- [x] final render-value precedence is explicit and covered by tests
- [x] `RenderStateComposer` or its replacement consumes a layered input contract
- [ ] reset/reload/preset behavior for transient overlays is centralized or clearly delegated
- [ ] OSC overlay settle/commit behavior is explicit, including persistence policy
- [ ] `RuntimeStore` remains durable-state focused and does not absorb transient automation policy