Step 3
This commit is contained in:
@@ -7,7 +7,7 @@ Phases 1-5 separate durable state, coordination policy, render-facing snapshots,
|
||||
## Status
|
||||
|
||||
- Phase 6 design package: proposed.
|
||||
- Phase 6 implementation: Step 2 complete.
|
||||
- Phase 6 implementation: Step 3 complete.
|
||||
- Current alignment: `RuntimeStore` owns durable serialization, config, package metadata, preset IO, and persistence requests; `CommittedLiveState` owns the current committed/session layer state; and `RuntimeCoordinator` publishes typed persistence requests for persisted mutations. The remaining issue is that actual disk writes are still synchronous store work rather than queued, debounced, atomic background writes.
|
||||
|
||||
Current persistence footholds:
|
||||
@@ -218,9 +218,16 @@ Introduce a worker thread or queued task owner.
|
||||
|
||||
Initial target:
|
||||
|
||||
- repeated runtime-state requests coalesce
|
||||
- worker writes only latest pending snapshot
|
||||
- tests cover coalescing without filesystem where possible
|
||||
- [x] repeated runtime-state requests coalesce
|
||||
- [x] worker writes only latest pending snapshot
|
||||
- [x] tests cover coalescing without filesystem where possible
|
||||
|
||||
Current implementation:
|
||||
|
||||
- `PersistenceWriter::EnqueueSnapshot(...)` starts a worker lazily and debounces snapshots by `debounceKey`.
|
||||
- Runtime-state saves enqueue debounced snapshots, so routine mutation paths no longer write the runtime-state file directly.
|
||||
- Synchronous `PersistenceWriter::WriteSnapshot(...)` remains for stack preset saves and transitional direct writes.
|
||||
- `PersistenceWriterTests` use an injected in-memory sink to verify coalescing and non-coalesced immediate requests without touching the filesystem.
|
||||
|
||||
### Step 4. Add Atomic Write And Failure Reporting
|
||||
|
||||
|
||||
Reference in New Issue
Block a user