{ "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 (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" }