Pass 3
This commit is contained in:
@@ -276,7 +276,7 @@ Per the Phase 1 subsystem design, `RuntimeStore` should sit low in the dependenc
|
||||
Allowed inbound dependencies:
|
||||
|
||||
- `RuntimeCoordinator -> RuntimeStore`
|
||||
- `RuntimeSnapshotProvider -> RuntimeStore`
|
||||
- `RenderSnapshotBuilder -> RuntimeStore`
|
||||
- temporary migration shims from `ControlServices` only where explicitly tolerated
|
||||
|
||||
Allowed outbound dependencies:
|
||||
@@ -359,16 +359,33 @@ Those belong under other target subsystems.
|
||||
`RuntimeStore` does not need to be one monolithic class forever. A practical internal shape would be:
|
||||
|
||||
- `RuntimeConfigStore`
|
||||
- runtime host config load/save and resolved paths
|
||||
- `PersistentLayerStore`
|
||||
- runtime host config load and resolved paths
|
||||
|
||||
The current codebase has begun this split: `RuntimeConfigStore` owns config parsing, path resolution, configured ports/formats, runtime roots, and shader compiler paths, while `RuntimeStore` keeps compatibility delegates for existing callers.
|
||||
- `LayerStackStore`
|
||||
- durable layer stack and parameter values
|
||||
- `StackPresetStore`
|
||||
- preset enumeration/load/save
|
||||
- `ShaderPackageCatalogStore`
|
||||
- layer CRUD/reorder and shader selection
|
||||
- stack preset value serialization/load
|
||||
- `RuntimeStatePresenter` / `RuntimeStateJson`
|
||||
- runtime-state JSON assembly
|
||||
- layer-stack presentation serialization
|
||||
- `RenderSnapshotBuilder`
|
||||
- render-state assembly and parameter refresh
|
||||
- dynamic frame-field refresh and render snapshot version counters
|
||||
- `ShaderPackageCatalog`
|
||||
- durable manifest/package metadata
|
||||
- shader package scanning, status/order/lookup, and asset/source change comparison
|
||||
- `PersistenceWriter` helper
|
||||
- synchronous at first, async/debounced later
|
||||
|
||||
The current codebase has begun the layer split: `LayerStackStore` owns durable layer state, layer CRUD/reorder, parameter persistence, and stack preset value serialization/load. `RuntimeStore` still owns locking, file IO, and compatibility delegates for existing callers.
|
||||
|
||||
The current codebase has begun the render snapshot split: `RenderSnapshotBuilder` owns render-state assembly, cached parameter refresh, dynamic frame-field refresh, and render snapshot versions. `RuntimeSnapshotProvider` depends on this builder rather than on `RuntimeStore` friendship.
|
||||
|
||||
The current codebase has also begun the presentation split: `RuntimeStatePresenter` owns top-level runtime-state JSON assembly, while `RuntimeStateJson` owns the layer-stack and parameter presentation shape used by runtime state clients.
|
||||
|
||||
The current codebase has also begun the package split: `ShaderPackageCatalog` owns package scanning and registry comparison, while `RuntimeStore` uses it to keep layer state valid and to build compatibility read models.
|
||||
|
||||
These can still be presented through one subsystem façade during migration.
|
||||
|
||||
## Persistence Model
|
||||
|
||||
Reference in New Issue
Block a user