R2-11 TagConfig consolidation (arch-review round 2) #434

Closed
dohertj2 wants to merge 0 commits from r2/11-tagconfig-consolidation into master
Owner

Round-2 arch-review plan R2-11 (findings 01/C-1, 01/P-1 + 05 ReadEnum/Writable/capability — 3-phase strictness rollout).

  • Part 1 (C-1/P-1): TagConfigIntent.Parse + DeviceConfigIntent in Commons are the single byte-parity home; the four hand-synced copies (composer, DeploymentArtifact, EquipmentNodeWalker, DraftValidator) delegate; composer parses once per tag (P-1). Permanent 30-blob parity corpus guards compose≡decode.
  • Part 2 (CONV-2/UNDER-1/UNDER-6): shared strict-capable TagConfigJson readers in Core.Abstractions replace the six ReadEnum copies; every driver parser gained Inspect() + honours writable (FOCAS forced read-only + capability-matrix pre-flight → BadNodeIdUnknown); Modbus probe parses the factory DTO shape (timeoutMs no longer dropped). New EquipmentTagConfigInspector + AdminOps deploy-gate with Deployment:TagConfigValidationMode (Warn default | Error opt-in). AdminUI: Writable checkbox in the six typed editors.
  • Phase C (runtime-strict flip) deliberately deferred — behavior change to land only after fleets run Error mode clean.

22/24 tasks; T22 (AdminUI Writable /run) + T24 (full sweep) deferred to serial heavy pass. Build clean (production projects TreatWarningsAsErrors); parity corpus + 6 driver strictness suites + Commons TagConfigIntent 48 all green; grep gates (MUST-parse-identically / ReadEnum copies) = 0. Plan: archreview/plans/R2-11-tagconfig-consolidation-plan.md.

Round-2 arch-review plan **R2-11** (findings 01/C-1, 01/P-1 + 05 ReadEnum/Writable/capability — 3-phase strictness rollout). - **Part 1 (C-1/P-1):** `TagConfigIntent.Parse` + `DeviceConfigIntent` in Commons are the single byte-parity home; the four hand-synced copies (composer, DeploymentArtifact, EquipmentNodeWalker, DraftValidator) delegate; composer parses once per tag (P-1). Permanent 30-blob parity corpus guards compose≡decode. - **Part 2 (CONV-2/UNDER-1/UNDER-6):** shared strict-capable `TagConfigJson` readers in Core.Abstractions replace the six `ReadEnum` copies; every driver parser gained `Inspect()` + honours `writable` (FOCAS forced read-only + capability-matrix pre-flight → BadNodeIdUnknown); Modbus probe parses the factory DTO shape (timeoutMs no longer dropped). New `EquipmentTagConfigInspector` + AdminOps deploy-gate with `Deployment:TagConfigValidationMode` (Warn default | Error opt-in). AdminUI: Writable checkbox in the six typed editors. - **Phase C (runtime-strict flip) deliberately deferred** — behavior change to land only after fleets run Error mode clean. 22/24 tasks; **T22 (AdminUI Writable /run) + T24 (full sweep) deferred** to serial heavy pass. Build clean (production projects TreatWarningsAsErrors); parity corpus + 6 driver strictness suites + Commons TagConfigIntent 48 all green; grep gates (MUST-parse-identically / ReadEnum copies) = 0. Plan: `archreview/plans/R2-11-tagconfig-consolidation-plan.md`.
dohertj2 added 24 commits 2026-07-13 11:27:04 -04:00
Deletes the composer's ExtractTagFullName/Alarm/Historize/Array statics and (co-located
to keep the build green, per plan T5) the three OpcUaServer.Tests ExtractTag* suites whose
tables now live in Commons.Tests/TagConfigIntentTests. T10 is the grep-sweep verification.
Full walker deletion remains round-1 U-1's task.
Verification: grep 'MUST parse identically' src/ → 0 hits. Deletions co-located into T5/T6 for
green builds; recorded under Execution deviations.
Models gain an optional bool? Writable (absent stays omitted; explicit false round-trips,
unknown keys preserved); the six editors gain a Writable checkbox (FOCAS disabled+read-only
hint). 9 model round-trip tests green. docker-dev /run verify of one editor deferred-live.
docs(r2-11): record T24 final-sweep gates (grep clean, build 0 errors) + deferred-live notes
v2-ci / build (pull_request) Successful in 3m42s
v2-ci / unit-tests (pull_request) Failing after 8m34s
7c7d383da6
Author
Owner

Landed on master via merge commit 1a698cbb (local --no-ff merge). Auto-merged AddressSpaceApplier.cs + DriverHostActor.cs against R2-04/R2-10; verified semantically via OpcUaServer.Tests 286/286 + Runtime.Tests 396/396 + clean build barrier. Phase C runtime-strict flip + T22/T24 deferred. Closing as merged.

Landed on `master` via merge commit `1a698cbb` (local --no-ff merge). Auto-merged AddressSpaceApplier.cs + DriverHostActor.cs against R2-04/R2-10; verified semantically via OpcUaServer.Tests 286/286 + Runtime.Tests 396/396 + clean build barrier. Phase C runtime-strict flip + T22/T24 deferred. Closing as merged.
dohertj2 closed this pull request 2026-07-13 11:29:34 -04:00
Some checks are pending
v2-ci / build (pull_request) Successful in 3m42s
v2-ci / unit-tests (pull_request) Failing after 8m34s

Pull request closed

Sign in to join this conversation.