1891f5d6a7
Re-ran all seven domain reviews at master f6eaa267 (reports rewritten in
place, each with a prior-finding status table): all 4 round-1 Criticals
verified closed; new top findings are the S7 connect-timeout OCE regression
(05/STAB-14), the ResilienceConfig operator-authorable brick (01/S-6), and
a batch of resilience-seam Mediums. 00-OVERALL.md carries the updated
maturity matrix + 12-item action list.
Adds R2-01..R2-12 design/implementation plans (one per action item, house
format + bite-sized TDD task breakdowns + co-located .tasks.json; 193 tasks,
~18-24 dev-days). STATUS.md updated: round-1 topology marked historical
(all merged+pushed), re-review findings table + plan pointers added.
85 lines
2.8 KiB
JSON
85 lines
2.8 KiB
JSON
{
|
|
"planPath": "archreview/plans/R2-01-s7-fault-hardening-plan.md",
|
|
"tasks": [
|
|
{
|
|
"id": 0,
|
|
"subject": "Extend reconnect-test fakes with token-honouring hang + probe-fault modes (FakeS7Plc/FakeS7PlcFactory)",
|
|
"status": "pending",
|
|
"blockedBy": []
|
|
},
|
|
{
|
|
"id": 1,
|
|
"subject": "RED: connect-timeout regression tests T1+T3 (read/write degrade instead of throwing OCE) — must FAIL at f6eaa267",
|
|
"status": "pending",
|
|
"blockedBy": [0]
|
|
},
|
|
{
|
|
"id": 2,
|
|
"subject": "RED: poll-loop-survival test T2 (subscription survives connect-timeout outage) + caller-cancel pinning test T4",
|
|
"status": "pending",
|
|
"blockedBy": [0, 1]
|
|
},
|
|
{
|
|
"id": 3,
|
|
"subject": "GREEN: EnsureConnectedAsync + InitializeAsync connect-timeout OCE -> TimeoutException conversion (STAB-14 root fix)",
|
|
"status": "pending",
|
|
"blockedBy": [1, 2]
|
|
},
|
|
{
|
|
"id": 4,
|
|
"subject": "Defensive when-filters on ensure-wrapper OCE rethrows (:488/:1000) + poll-loop OCE catches (:1383/:1396/:1404)",
|
|
"status": "pending",
|
|
"blockedBy": [3]
|
|
},
|
|
{
|
|
"id": 5,
|
|
"subject": "Finding-1 close gate: full S7 unit + CLI test-project sweep green",
|
|
"status": "pending",
|
|
"blockedBy": [4]
|
|
},
|
|
{
|
|
"id": 6,
|
|
"subject": "RED: framing-fault classification Theory T5 (TPKT/TPDU/WrongNumberOfBytes/PlcException-WrongNumberReceivedBytes reopen) — must FAIL",
|
|
"status": "pending",
|
|
"blockedBy": [0]
|
|
},
|
|
{
|
|
"id": 7,
|
|
"subject": "GREEN: broaden IsS7ConnectionFatal to the ISO-on-TCP framing surface (NOT InvalidDataException) + xmldoc (STAB-15a)",
|
|
"status": "pending",
|
|
"blockedBy": [6]
|
|
},
|
|
{
|
|
"id": 8,
|
|
"subject": "RED->GREEN: cancellation-during-I/O marks handle dead (T6 read + T7 write; per-item OCE catches set _plcDead before propagating)",
|
|
"status": "pending",
|
|
"blockedBy": [7]
|
|
},
|
|
{
|
|
"id": 9,
|
|
"subject": "RED->GREEN: probe marks handle dead under the gate (T8 persistent probe fault + T9 probe timeout; ProbeLoopAsync inner catch restructure, STAB-15b)",
|
|
"status": "pending",
|
|
"blockedBy": [8]
|
|
},
|
|
{
|
|
"id": 10,
|
|
"subject": "Doc: R2-09 connect-throttle seam note on EnsureConnectedAsync <remarks> (STAB-8 S7 part, note-only)",
|
|
"status": "pending",
|
|
"blockedBy": [3]
|
|
},
|
|
{
|
|
"id": 11,
|
|
"subject": "Env-gated live connect-timeout outage test (S7_TIMEOUT_OUTAGE_START_CMD/STOP_CMD blackhole design; skips cleanly offline)",
|
|
"status": "pending",
|
|
"blockedBy": [5]
|
|
},
|
|
{
|
|
"id": 12,
|
|
"subject": "Close-out: whole-suite sweep + update archreview STATUS.md and 05 prior-finding table (STAB-14/15 FIXED, STAB-8 seam noted)",
|
|
"status": "pending",
|
|
"blockedBy": [5, 7, 8, 9, 10, 11]
|
|
}
|
|
],
|
|
"lastUpdated": "2026-07-12"
|
|
}
|