docs(archreview): round-2 COMPLETE capstone — all 12 plans merged @31c98200
All 12 R2 plans executed + merged (PRs #426-#437) in 3 waves. Consolidated unit sweep green on merged master; 3 failures confirmed pre-existing/environmental (not R2). Records the PR/wave map, unit-sweep tallies, and the deferred integration / docker-dev / 2-node-rig / VPN heavy-pass checklist.
This commit is contained in:
@@ -5,6 +5,12 @@
|
||||
> 2026-07-12 **re-review at `f6eaa267`** produced an updated 12-item action list
|
||||
> ([`../00-OVERALL.md`](../00-OVERALL.md)) — see **Round 2 plans** below.
|
||||
|
||||
> **✅ 2026-07-13 — ALL 12 ROUND-2 PLANS EXECUTED + MERGED** to `master` (`31c98200`), each as a Gitea PR
|
||||
> (#426–#437) in 3 dependency-ordered waves. Consolidated unit sweep green (integration + live-`/run` gates
|
||||
> deferred to a serialized heavy pass). See the "Round-2 COMPLETE" capstone at the bottom of
|
||||
> [`STATUS.md`](STATUS.md) for the PR/wave map, unit-sweep tallies, the 3 confirmed-pre-existing failures, and
|
||||
> the deferred heavy/live-pass checklist.
|
||||
|
||||
## Round 2 plans (2026-07-12, verified at `f6eaa267`)
|
||||
|
||||
One plan per action item in the updated `00-OVERALL.md` prioritized list. Each verifies its findings
|
||||
|
||||
@@ -186,3 +186,46 @@ what the unit leg cannot; (c) migrate the 3 xunit v2 holdouts once Akka ships an
|
||||
`:23` and `:29` (now deleted); (2) `01-core-composition.md` U-6 anchor
|
||||
`DriverResiliencePipelineBuilder.cs:99-177` → `Build` was `:99-176`. All other cited lines were exact at
|
||||
`f6eaa267`.
|
||||
|
||||
## ✅ Round-2 COMPLETE — all 12 plans merged (2026-07-13)
|
||||
|
||||
All 12 round-2 plans were executed (isolated worktree per plan, per-task TDD, pathspec-scoped commits) and
|
||||
**merged to `master` + pushed to `origin/master`** in 3 dependency-ordered waves, each plan landing as its own
|
||||
Gitea PR (closed-as-merged) behind a `dotnet build` barrier. **Final state: master `31c98200`.**
|
||||
|
||||
| Wave | Plans (PR#) |
|
||||
|---|---|
|
||||
| A (no cross-plan deps) | R2-12 #426 · R2-06 #427 · R2-05 #428 · R2-01 #429 · R2-03 #430 · R2-02 #431 |
|
||||
| B (parse-site barrier) | R2-10 #432 · R2-04 #433 · R2-11 #434 |
|
||||
| C (largest, depend on earlier) | R2-08 #435 · R2-07 #436 · R2-09 #437 |
|
||||
|
||||
Cross-plan mutexes honored: R2-01 landed before R2-09 (PollGroupEngine v2 / S7 fork retirement); R2-11's
|
||||
`TagConfigIntent.Parse` consolidation landed before R2-09's driver parse edits; the three plans that all edit
|
||||
`AddressSpaceApplier.cs` + `DriverHostActor.cs` + `OtOpcUaNodeManager.cs` (R2-04/R2-07/R2-08/R2-10/R2-11) were
|
||||
merged sequentially with the shared-file auto-merges verified by targeted unit runs each time.
|
||||
|
||||
### Consolidated unit sweep on merged `master` `31c98200` (integration suites excluded — ~16 GB/run leak)
|
||||
Solution `dotnet build` clean (0 errors). All R2-relevant unit suites GREEN, incl.: OpcUaServer 341, Runtime
|
||||
398, Commons(+forwarding guard) 122, Core 276, Core.Abstractions 128, Core.Scripting 137, Core.VirtualTags 59,
|
||||
Cluster 29, Security 84, ControlPlane 78, Analyzers 32, AdminUI 537, Client.CLI 104, Client.Shared 182,
|
||||
Client.UI 126, Core.AlarmHistorian 29, Core.ScriptedAlarms 71, and all drivers (S7 254, Modbus 312+161, AbCip
|
||||
336, AbLegacy 209, TwinCAT 189, FOCAS 265, Galaxy 304, Galaxy.Browser 21, Historian.Gateway 102, OpcUaClient 131).
|
||||
|
||||
**3 failures, all confirmed PRE-EXISTING / environmental (git diff `1676c8f4..HEAD` empty on their paths — R2 never touched them):**
|
||||
1. `Core.Abstractions.Tests.InterfaceIndependenceTests.AllPublicTypes_LiveInRootNamespace` — flags the pre-R2
|
||||
`Core.Abstractions.Historian.*` continuous-historization types living in a sub-namespace. **Pre-existing convention debt — needs-owner-decision** (move the types to root, or relax the test to allow the intentional Historian grouping).
|
||||
2. `Driver.S7.Cli.Tests.SubscribeCommandConsoleHandlerCommentTests...` — pre-existing docs-scan test looking for a `"CliFx console"` phrase removed by `9cad9ed0`. **Follow-up: repoint or delete the phrase-scan.**
|
||||
3. `Driver.OpcUaClient.Browser.Tests` (3) — `Connection refused`; need the live opc-plc endpoint (`10.100.0.35:50000`), unreachable offline. **Environmental — pass with the fixture up.**
|
||||
|
||||
### Deferred heavy / live-`/run` pass (serialized — single-tenant rig; controller-owned)
|
||||
Every plan's integration-suite and live-`/run` gates were deferred (not skipped) so nothing OOMs the box and the
|
||||
shared docker-dev rig / VPN infra isn't contended. To run one-at-a-time:
|
||||
|
||||
- **Full integration-suite sweep** (10 `*.IntegrationTests` projects, one at a time): discharges R2-02 T18, R2-03 T11, R2-07 T5/T6, R2-08 T14, R2-11 T24.
|
||||
- **docker-dev `:9200` live-`/run`** (rebuild BOTH centrals): R2-02 T15 (ResilienceConfig warning banner / input lockout / unknown-key survival), R2-03 T12 (VT fail→Bad→recover + P7 no-recompile), R2-10 T10 (breaker-open on both centrals + recovery + FOLLOWUP-10 log line), R2-11 T22 (typed-editor Writable checkbox), **R2-07 T12 (surgical add/remove/mixed — F10b inertness risk, MUST run)**, R2-05 T15 (over-gating regression only — deny unobservable under `DisableLogin`).
|
||||
- **2-node redundancy rig:** **R2-04 T13/T15 — behavior-affecting S4 primary-gate default-deny; MUST run before trusting the failover-role change.**
|
||||
- **Genuinely external / needs-user:** R2-06 T12 (VPN to a 0.2.0 HistorianGateway for the live EnsureTags retype probe), R2-08 live legs (real GLAuth outage/recovery cycle; `Category=LiveIntegration` gateway soak), R2-01 T11 (S7 SYN-blackhole outage on the `10.100.0.35` s7_1500 fixture).
|
||||
|
||||
### Deferred behavior-change follow-up (deliberately not shipped)
|
||||
**R2-11 Phase C** — flip the runtime driver parsers to strict (typo'd enum ⇒ `BadNodeIdUnknown` instead of a
|
||||
wrong-width `Good`). Land only after fleets have run `Deployment:TagConfigValidationMode=Error` clean.
|
||||
|
||||
Reference in New Issue
Block a user