step 3
This commit is contained in:
@@ -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 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`.
|
||||
- Phase 5 implementation: Step 3 complete.
|
||||
- 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, `RenderStateComposer` consumes a `LayeredRenderStateInput` whose fields make base persisted, committed live, and transient automation inputs explicit, and `RuntimeLiveState` owns transient-overlay invalidation against current layer/parameter compatibility. Committed runtime values are still physically stored through `RuntimeStore`/`LayerStackStore`.
|
||||
|
||||
Current live-state footholds:
|
||||
|
||||
@@ -19,6 +19,7 @@ Current live-state footholds:
|
||||
- `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.
|
||||
- `RuntimeCoordinator` can request layer-scoped transient OSC invalidation, while `RuntimeLiveState` prunes overlays that no longer map to the current render-facing layer/parameter definitions.
|
||||
|
||||
## Why Phase 5 Exists
|
||||
|
||||
@@ -265,14 +266,21 @@ Move reset/reload transient-state decisions into one policy point.
|
||||
|
||||
Initial target:
|
||||
|
||||
- layer removal clears matching transient overlays
|
||||
- shader change clears incompatible overlays
|
||||
- preset load clears incompatible overlays
|
||||
- shader reload can preserve compatible overlays when requested
|
||||
- temporal/feedback resets stay render-local and separate from parameter overlays
|
||||
- [x] layer removal clears matching transient overlays
|
||||
- [x] shader change clears incompatible overlays
|
||||
- [x] preset load clears incompatible overlays
|
||||
- [x] shader reload can preserve compatible overlays when requested
|
||||
- [x] temporal/feedback resets stay render-local and separate from parameter overlays
|
||||
|
||||
This is where Phase 5 should prevent "clear everything" and "preserve everything" from being scattered through unrelated code.
|
||||
|
||||
Current implementation:
|
||||
|
||||
- `RuntimeCoordinatorResult` carries a named `RuntimeCoordinatorTransientOscInvalidation` request rather than a raw clear-all flag.
|
||||
- `RuntimeUpdateController` applies layer-scoped invalidation to both render-owned overlay state and queued OSC service state.
|
||||
- `RuntimeLiveState::PruneIncompatibleOverlays(...)` is the central compatibility policy for current render-facing layer/parameter definitions.
|
||||
- `RuntimeLiveState::ApplyToLayerStates(...)` prunes incompatible overlays before applying transient values, so shader changes, preset loads, and layer removals stop carrying stale overlays once the current frame state no longer maps them.
|
||||
|
||||
### Step 4. Clarify OSC Commit Semantics
|
||||
|
||||
Make the transient-to-committed path explicit.
|
||||
@@ -368,7 +376,7 @@ Phase 5 can be considered complete once the project can say:
|
||||
- [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
|
||||
- [x] 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
|
||||
- [ ] render-local temporal/feedback state remains separate from live parameter layering
|
||||
|
||||
Reference in New Issue
Block a user