save checkpoint
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# Reachability Caching with Incremental Updates
|
||||
|
||||
## Module
|
||||
Scanner
|
||||
|
||||
## Status
|
||||
VERIFIED
|
||||
|
||||
## Description
|
||||
Postgres-backed reachability cache with incremental updates, graph delta computation, impact set calculation, and state flip detection for efficient cache invalidation.
|
||||
|
||||
## Implementation Details
|
||||
- **Reachability Cache**:
|
||||
- `src/Scanner/__Libraries/StellaOps.Scanner.Reachability/Cache/IReachabilityCache.cs` - `IReachabilityCache` interface for cached reachability results
|
||||
- `src/Scanner/__Libraries/StellaOps.Scanner.Reachability/Cache/PostgresReachabilityCache.cs` - `PostgresReachabilityCache` PostgreSQL-backed cache for reachability analysis results
|
||||
- **Incremental Updates**:
|
||||
- `src/Scanner/__Libraries/StellaOps.Scanner.Reachability/Cache/IncrementalReachabilityService.cs` - `IncrementalReachabilityService` performs incremental reachability updates based on graph deltas
|
||||
- **Graph Delta Computation**:
|
||||
- `src/Scanner/__Libraries/StellaOps.Scanner.Reachability/Cache/IGraphDeltaComputer.cs` - `IGraphDeltaComputer` interface for computing graph changes
|
||||
- `src/Scanner/__Libraries/StellaOps.Scanner.Reachability/Cache/GraphDeltaComputer.cs` - `GraphDeltaComputer` computes added/removed/modified nodes and edges between graph versions
|
||||
- **Impact Set Calculation**:
|
||||
- `src/Scanner/__Libraries/StellaOps.Scanner.Reachability/Cache/ImpactSetCalculator.cs` - `ImpactSetCalculator` determines which reachability paths are affected by graph changes
|
||||
- **State Flip Detection**:
|
||||
- `src/Scanner/__Libraries/StellaOps.Scanner.Reachability/Cache/StateFlipDetector.cs` - `StateFlipDetector` detects reachability state changes (reachable->unreachable or vice versa) for cache invalidation
|
||||
- **PR Reachability Gate**:
|
||||
- `src/Scanner/__Libraries/StellaOps.Scanner.Reachability/Cache/PrReachabilityGate.cs` - `PrReachabilityGate` provides PR-level reachability gating using cached results
|
||||
|
||||
## E2E Test Plan
|
||||
- [ ] Scan an image, verify reachability results are cached in PostgreSQL, then rescan and verify cache hits avoid recomputation
|
||||
- [ ] Modify one dependency in the image and verify incremental update only recomputes affected paths
|
||||
- [ ] Verify graph delta computation correctly identifies added, removed, and modified nodes and edges
|
||||
- [ ] Verify impact set calculation determines exactly which reachability paths need re-evaluation
|
||||
- [ ] Verify state flip detection correctly identifies findings that changed from reachable to unreachable (or vice versa)
|
||||
- [ ] Verify the PR reachability gate uses cached results to quickly evaluate PR-level reachability changes
|
||||
|
||||
---
|
||||
|
||||
## Verification
|
||||
|
||||
| Check | Result |
|
||||
|-------|--------|
|
||||
| Tier 0 - Source files exist | PASS |
|
||||
| Tier 1 - Build + code review | PASS |
|
||||
| Tier 2 - Integration tests | PASS |
|
||||
| Verified | 2026-02-13T18:10:00Z |
|
||||
Reference in New Issue
Block a user