diff --git a/sw-block/design/v3-phase-15-g7-progress-fact-recover-plan.md b/sw-block/design/v3-phase-15-g7-progress-fact-recover-plan.md index fdf0c8a34..a67fab9c2 100644 --- a/sw-block/design/v3-phase-15-g7-progress-fact-recover-plan.md +++ b/sw-block/design/v3-phase-15-g7-progress-fact-recover-plan.md @@ -8,6 +8,21 @@ --- +## 0. Current State And Gap + +The project already has coordinator layers; the issue is that their facts are still split. + +| Layer | Current owner | What exists today | Gap | +|-------|---------------|-------------------|-----| +| Semantic coordinator | `core/engine` via `adapter.VolumeReplicaAdapter` | `ProbeResult` normalizes into `R/S/H`; engine decides `none / catch_up / rebuild / unknown`. | No unified progress fact type; decisions are tied to probe/session events directly. | +| Peer/probe host | `core/replication.ReplicationVolume` | Maintains peer set and degraded-peer probe loop; `G5_5C` covers restart → probe → auto catch-up. | Auto rebuild for no-trusted-R / R