44 lines
2.9 KiB
Markdown
44 lines
2.9 KiB
Markdown
# Time-Travel Replay Engine
|
|
|
|
## Module
|
|
Policy
|
|
|
|
## Status
|
|
IMPLEMENTED
|
|
|
|
## Description
|
|
Re-evaluation of any historical decision using only snapshot content and recorded execution contract, producing match/mismatch reports with deterministic comparison.
|
|
|
|
## Implementation Details
|
|
- **ReplayEngine**: `src/Policy/__Libraries/StellaOps.Policy/Replay/ReplayEngine.cs` (sealed class implements `IReplayEngine`)
|
|
- `ReplayAsync(ReplayRequest)` replays historical decisions using frozen snapshot inputs
|
|
- Pipeline: load snapshot -> verify snapshot integrity -> resolve frozen inputs -> execute evaluation -> compare with original -> generate report
|
|
- Frozen inputs prevent time-dependent drift (no network fetch, no live data)
|
|
- Duration tracking for performance analysis
|
|
- **ReplayRequest**: `src/Policy/__Libraries/StellaOps.Policy/Replay/ReplayRequest.cs`
|
|
- ArtifactDigest, SnapshotId (content-addressed), OriginalVerdictId
|
|
- ReplayOptions: CompareWithOriginal=true, AllowNetworkFetch=false, GenerateDetailedReport=true, ScoreTolerance=0.001
|
|
- **ReplayResult**: `src/Policy/__Libraries/StellaOps.Policy/Replay/ReplayResult.cs`
|
|
- MatchStatus: ExactMatch, MatchWithinTolerance, Mismatch, NoComparison, ReplayFailed
|
|
- DeltaReport: Summary, FieldDeltas, FindingDeltas, SuspectedCauses
|
|
- **VerdictComparer**: `src/Policy/__Libraries/StellaOps.Policy/Replay/VerdictComparer.cs` -- deterministic verdict comparison
|
|
- **ReplayReport**: `src/Policy/__Libraries/StellaOps.Policy/Replay/ReplayReport.cs` -- detailed report generation
|
|
- **KnowledgeSourceResolver**: `src/Policy/__Libraries/StellaOps.Policy/Replay/KnowledgeSourceResolver.cs` -- resolves snapshot sources to frozen data
|
|
- **KnowledgeSnapshotManifest**: `src/Policy/__Libraries/StellaOps.Policy/Snapshots/KnowledgeSnapshotManifest.cs`
|
|
- Content-addressed snapshots enable time-travel to any historical state
|
|
- Sources with Epoch and Digest for point-in-time data resolution
|
|
- **SnapshotAwarePolicyEvaluator**: `src/Policy/__Libraries/StellaOps.Policy/Snapshots/SnapshotAwarePolicyEvaluator.cs`
|
|
- Evaluates policy using only pinned snapshot inputs (no live data)
|
|
|
|
## E2E Test Plan
|
|
- [ ] Replay decision from 30 days ago using its snapshot; verify ExactMatch (deterministic)
|
|
- [ ] Replay decision with modified snapshot source; verify Mismatch with SuspectedCauses
|
|
- [ ] Replay with AllowNetworkFetch=false; verify no external calls made during replay
|
|
- [ ] Verify ReplayResult.Duration tracks execution time
|
|
- [ ] Replay with missing snapshot; verify ReplayFailed with descriptive error
|
|
- [ ] Replay with ScoreTolerance=0.01; introduce minor floating-point drift; verify MatchWithinTolerance
|
|
- [ ] Verify DeltaReport.FieldDeltas shows exact field-level differences for Mismatch
|
|
- [ ] Verify DeltaReport.FindingDeltas shows finding-level changes (Added/Removed/Modified)
|
|
- [ ] Replay multiple historical decisions; verify each produces correct MatchStatus
|
|
- [ ] Verify snapshot integrity check runs before replay execution
|