mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-09-08 15:41:15 +02:00
* doc: P14 S8 final bounded close — evidence matrix + P15 handoff
Adds the six S8 closure deliverables consolidating S4-S7 evidence,
classifying V2 scenarios, and mapping residual product gaps onto
canonical P15 tracks (per v3-phase-15-product-plan.md §4).
New docs:
- v3-phase-14-s8-assignment.md — S8 execution contract.
- v3-phase-14-s8-final-bounded-close.md — bounded P14 target,
accepted topology, reject conditions.
- v3-phase-14-s8-evidence-matrix.md — 16 claims × {L0, L1, L2, L3,
Status, Residual}. 15 PROVEN, 1 PARTIAL (Claim 15 fence
quantitative bound, P14 internal follow-up). Rounds 2-3 architect
corrections: Claim 10 / 12 L2 narrowed; Claim 6 refresh gap closed
by the new L1 test (see companion commit in seaweed_block).
- v3-phase-14-s8-v2-scenario-classification.md — every V2 scenario
mapped to RUNNABLE-P14 / BLOCKED-FRONTEND / BLOCKED-OPS /
BLOCKED-HA / BLOCKED-PERF / PORT-MECHANISM; scenario YAMLs kept
as L3 shape, not executed evidence.
- v3-phase-14-s8-p15-handoff.md — 11 rows (10 canonical P15 tracks
+ 1 P14 internal follow-up anchored to Claim 15 PARTIAL); §4
integrity check split by row class.
- v3-phase-14-s8-closure.md — final P14 closure statement matching
the close doc §10 wording; explicit non-goals; all 9 P15 tracks
named with canonical numbering.
No claim of CSI / frontend / migration / security / performance /
production readiness. Every product gap is handed off with a
concrete first-proof gate.
Companion: seaweed_block commit adds the IntentRefreshEndpoint L1
route test that closes Claim 6.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* doc: P14 S8 — resolve port-now doc conflict (CodeRabbit #4)
final-bounded-close.md §7 previously said "Port now: testrunner,
scenarios, component harness, qa_block, learn/test" while
v2-scenario-classification.md §2 says S8 does NOT port testrunner
machinery and defers all actual porting to P15.
Align final-bounded-close.md §7 with classification: section
renamed "Classify now (S8 scope), port deferred to P15". Every
item now states which P15 track actually owns the port (Final Gate
or T1 Frontend + Data Path as applicable).
No scope expansion; no new handoff gap. Pure doc-consistency fix.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
188 lines
5.6 KiB
Markdown
188 lines
5.6 KiB
Markdown
# V3 Phase 14 S8 Assignment
|
|
|
|
Date: 2026-04-19
|
|
Status: draft
|
|
Owner: sw, with architect and tester review
|
|
Purpose: execute the final bounded P14 close by producing evidence, scenario classification, and a clean P15 handoff
|
|
|
|
## 1. One-Line Goal
|
|
|
|
Close P14 as a bounded internal single-active-master topology/control-plane loop, backed by L0/L1/L2 evidence and honest L3/P15 carry-forward.
|
|
|
|
## 2. Scope
|
|
|
|
Included:
|
|
|
|
1. S4-S7 route evidence consolidation
|
|
2. acceptance matrix for all P14 internal claims
|
|
3. final supported topology statement
|
|
4. unsupported/deferred list
|
|
5. V2 testrunner/scenario port classification
|
|
6. process smoke gaps review
|
|
7. 14A final targeted review packet
|
|
8. P15 handoff mapping
|
|
|
|
Excluded:
|
|
|
|
1. CSI implementation
|
|
2. external API implementation
|
|
3. user data-path production readiness
|
|
4. migration implementation
|
|
5. security implementation
|
|
6. multi-master / HA
|
|
7. performance or soak claims
|
|
|
|
## 3. Required Work
|
|
|
|
### A. Evidence Inventory
|
|
|
|
Create an evidence table that maps S4-S7 claims to concrete tests and commands.
|
|
|
|
Must include:
|
|
|
|
1. observation institution
|
|
2. durable authority institution
|
|
3. convergence institution
|
|
4. real-route restart closure
|
|
5. placement/rebalance/failover policy for accepted topology
|
|
6. unsupported topology evidence
|
|
7. old-slot/stale observation rejection
|
|
8. per-volume isolation
|
|
|
|
### B. Gap Classification
|
|
|
|
Classify every missing proof as one of:
|
|
|
|
1. P14 internal blocker
|
|
2. P14 S8 test/harness gap
|
|
3. P15 product-surface gap
|
|
4. 14A verification follow-up
|
|
5. explicit non-goal
|
|
|
|
Any P14 internal blocker must be fixed before S8 close. A P15 product-surface gap must be carried forward, not disguised as P14 closure.
|
|
|
|
### C. V2 Scenario Port Classification
|
|
|
|
Inspect V2 scenario/test assets and produce a table:
|
|
|
|
| V2 asset | P14 use | P15 use | Port shape | Blocker |
|
|
|---|---|---|---|---|
|
|
|
|
Start with:
|
|
|
|
1. `weed/storage/blockvol/testrunner/`
|
|
2. `weed/storage/blockvol/testrunner/scenarios/public/ha-restart-recovery.yaml`
|
|
3. `weed/storage/blockvol/testrunner/scenarios/public/ha-failover.yaml`
|
|
4. `weed/storage/blockvol/testrunner/scenarios/public/fault-partition.yaml`
|
|
5. `weed/storage/blockvol/test/component/`
|
|
6. `weed/server/qa_block_*`
|
|
7. `learn/test` evidence layout
|
|
|
|
### D. L2 Process Smoke Decision
|
|
|
|
Answer whether current `sparrow` hidden smoke surfaces are sufficient for S8 L2 internal close.
|
|
|
|
If not sufficient, add the minimum internal S8 smoke surface needed to prove the S4-S7 route without inventing P15 external product APIs.
|
|
|
|
The smoke must check:
|
|
|
|
1. real process starts
|
|
2. durable authority reloads
|
|
3. observation or fixture input drives controller
|
|
4. assignment reaches adapter through `VolumeBridge`
|
|
5. restart does not mint backward
|
|
6. structured output can be consumed by tester
|
|
|
|
### E. 14A Final Targeted Pass
|
|
|
|
Prepare a 14A checklist for:
|
|
|
|
1. stale authority after restart
|
|
2. stale observation after reassignment
|
|
3. old-slot delivery after authority move
|
|
4. unsupported topology no-op/evidence
|
|
5. convergence stuck/supersede clearing
|
|
6. publication honesty during transition
|
|
7. per-volume isolation
|
|
|
|
14A should review findings first. It should not expand P14 scope.
|
|
|
|
### F. P15 Handoff
|
|
|
|
Produce a P15 handoff table:
|
|
|
|
| Gap | Why not P14 | P15 owner track | Required first proof |
|
|
|---|---|---|---|
|
|
|
|
Must include:
|
|
|
|
1. CSI lifecycle
|
|
2. frontend data path
|
|
3. external volume API
|
|
4. security/auth
|
|
5. diagnostics/operator workflow
|
|
6. migration/coexistence
|
|
7. deployment/hardening
|
|
8. final cluster validation agent
|
|
|
|
## 4. Required Commands
|
|
|
|
At minimum run or document blockers for:
|
|
|
|
```text
|
|
go test ./core/engine ./core/adapter ./core/authority -count=1
|
|
go test ./cmd/sparrow ./core/authority -count=1
|
|
go test ./... -count=1
|
|
```
|
|
|
|
If sandbox or Windows filesystem behavior blocks durable-store tests, rerun outside the sandbox and record the reason.
|
|
|
|
If L3 hardware scenarios are not runnable, do not fake them. Record the scenario names and blockers.
|
|
|
|
## 5. Expected Files
|
|
|
|
Expected docs:
|
|
|
|
1. `sw-block/design/v3-phase-14-s8-final-bounded-close.md` — this scope document
|
|
2. `sw-block/design/v3-phase-14-s8-assignment.md` — this assignment
|
|
3. `sw-block/design/v3-phase-14-s8-closure.md` — final closure statement, created after implementation/evidence
|
|
4. updates to `v3-phase-14-checklist.md`
|
|
5. updates to `v3-phase-14-log.md`
|
|
6. updates to `v3-phase-14a-checklist.md` if 14A final pass finds coverage gaps
|
|
|
|
Expected code/tests only if needed:
|
|
|
|
1. internal process smoke helper in `cmd/sparrow`
|
|
2. component evidence consolidation tests in `core/authority` or a shared component package
|
|
3. scenario classification artifacts under the chosen test/runner directory
|
|
|
|
## 6. Acceptance
|
|
|
|
S8 can be accepted only when:
|
|
|
|
1. the evidence matrix exists and is honest
|
|
2. all P14 internal blockers are either fixed or explicitly rejected from the P14 claim
|
|
3. L0 and L1 tests pass
|
|
4. L2 process smoke is present or its absence is classified as a P15 product-surface blocker
|
|
5. L3 scenarios are classified with runnable/deferred/blocker status
|
|
6. 14A final targeted pass has no open P14 safety blocker
|
|
7. P15 handoff maps every product gap to a P15 track
|
|
8. final closure statement does not claim production readiness
|
|
|
|
## 7. Review Focus
|
|
|
|
Architect should review:
|
|
|
|
1. whether S8 closure is product-honest
|
|
2. whether any P15 work was pulled backward into P14
|
|
3. whether any P14 internal truth gap was pushed forward into P15
|
|
4. whether test evidence matches the claimed layer
|
|
5. whether V2 porting stays mechanism-only
|
|
|
|
Tester should review:
|
|
|
|
1. whether evidence is reproducible
|
|
2. whether commands and scenario blockers are specific
|
|
3. whether L2/L3 gaps are visible
|
|
4. whether final artifacts are enough to start P15 without re-litigating P14
|