Joseph Doherty
1cceef406e
feat(driver-s7): shared TagConfigJson readers, writable key, Inspect warnings (R2-11)
2026-07-13 10:57:01 -04:00
Joseph Doherty
f2e899aaad
feat(r2-04): PrimaryGatePolicy - membership-aware default-deny + denial meter (03/S4)
2026-07-13 10:55:46 -04:00
Joseph Doherty
64b9bba9e9
feat(driver-modbus): shared TagConfigJson readers, writable key, Inspect warnings (R2-11)
2026-07-13 10:55:41 -04:00
Joseph Doherty
edbbc0438c
test(r2-04): live guard - advised write remains Good under fail-closed advise (skip-gated)
2026-07-13 10:54:13 -04:00
Joseph Doherty
084c6e3cee
feat(r2-04): meter unconfirmed + advise-failed Galaxy writes
2026-07-13 10:53:17 -04:00
Joseph Doherty
a9b7a5002a
feat(core-abstractions): TagConfigJson shared strict-capable field readers (R2-11, 05/CONV-2)
2026-07-13 10:53:13 -04:00
Joseph Doherty
19c14301e9
Merge R2-10 Resilience observability (arch-review round 2) [PR #432 ]
...
v2-ci / build (push) Successful in 3m53s
v2-ci / unit-tests (push) Failing after 10m5s
Finding 03/U10=04/U-5: DPS mirror of the driver-health flow surfaces
retry/breaker/staleness on AdminUI /hosts (tracker had no reader). Core
truthfulness fixes (RecordBreakerClose, RecordSuccess on every success path).
T10 live gate deferred. Clean merge, build clean.
2026-07-13 10:52:27 -04:00
Joseph Doherty
9c94d51bf4
test(opcuaserver): retire ExtractTag* tests — byte-parity authority is Commons TagConfigIntentTests (R2-11)
...
Verification: grep 'MUST parse identically' src/ → 0 hits. Deletions co-located into T5/T6 for
green builds; recorded under Execution deviations.
2026-07-13 10:51:19 -04:00
Joseph Doherty
610306734c
fix(r2-04): Galaxy fail-closed write when AdviseSupervisory fails - Bad status feeds #5 node revert (06/S-1)
2026-07-13 10:51:16 -04:00
Joseph Doherty
4b86beef28
refactor(core): EquipmentNodeWalker.ExtractFullName delegates to TagConfigIntent; repoint canonical-parser doc cites (R2-11)
...
Full walker deletion remains round-1 U-1's task.
2026-07-13 10:50:50 -04:00
Joseph Doherty
1e3552dbd5
docs(archreview): R2-10 resilience observability shipped
v2-ci / build (pull_request) Successful in 3m47s
v2-ci / unit-tests (pull_request) Failing after 8m12s
2026-07-13 10:50:02 -04:00
Joseph Doherty
a3c2b11e34
refactor(config): DraftValidator Galaxy rule reads ExplicitFullName via TagConfigIntent (R2-11)
2026-07-13 10:48:50 -04:00
Joseph Doherty
a537d29f44
refactor(r2-04): internal IMxWriteOps seam under GatewayGalaxyDataWriter (sealed SDK session untestable)
2026-07-13 10:48:30 -04:00
Joseph Doherty
c1e19ea954
refactor(runtime): DeploymentArtifact decodes TagConfig via shared TagConfigIntent (R2-11, 01/C-1)
2026-07-13 10:47:51 -04:00
Joseph Doherty
cc5ecb5868
fix(r2-10): breaker/retry chips on the driver status panel
2026-07-13 10:46:47 -04:00
Joseph Doherty
7bbec77716
refactor(runtime,opcuaserver): device-host normalization re-homed to Commons DeviceConfigIntent (R2-11)
2026-07-13 10:46:30 -04:00
Joseph Doherty
38c059dae7
fix(r2-10): driver-resilience-status DPS bridge
2026-07-13 10:44:44 -04:00
Joseph Doherty
759125372a
fix(r2-04): surface degraded address-space applies (Error log + otopcua.opcua.apply.failed)
2026-07-13 10:44:18 -04:00
Joseph Doherty
99ce5b401e
fix(r2-10): in-process resilience status store
2026-07-13 10:43:47 -04:00
Joseph Doherty
12b2ce078b
fix(r2-10): register the tracker's production reader on driver nodes + wiring guard
2026-07-13 10:42:18 -04:00
Joseph Doherty
a452a20947
refactor(opcuaserver): composer parses TagConfig once per tag via TagConfigIntent (R2-11, 01/P-1)
...
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.
2026-07-13 10:42:08 -04:00
Joseph Doherty
e37abf36a0
fix(r2-04): Materialise* passes return swallowed-failure tallies (void -> int)
2026-07-13 10:41:19 -04:00
Joseph Doherty
37f180c5a3
fix(r2-10): periodic DPS publisher for tracker snapshots
2026-07-13 10:40:54 -04:00
Joseph Doherty
b6633f7562
feat(commons): DeviceConfigIntent — device-host extraction + normalization home (R2-11)
2026-07-13 10:39:54 -04:00
Joseph Doherty
2cb3f962b9
fix(r2-10): DriverResilienceStatusChanged DPS contract
2026-07-13 10:39:18 -04:00
Joseph Doherty
cd3f1270ee
feat(commons): TagConfigIntent.Parse — single home for the byte-parity TagConfig intents (R2-11, 01/C-1)
2026-07-13 10:39:07 -04:00
Joseph Doherty
0ba60db1e4
fix(r2-10): successful capability calls reset ConsecutiveFailures
2026-07-13 10:38:51 -04:00
Joseph Doherty
b3d57ca363
fix(r2-04): Safe* helpers report failure; Apply tallies removal-pass failures into FailedNodes
2026-07-13 10:38:10 -04:00
Joseph Doherty
353f04b70c
test(core,config): FullName-semantics characterization for walker + draft gate (R2-11)
2026-07-13 10:37:21 -04:00
Joseph Doherty
2cce61fc04
fix(r2-10): OnClosed records breaker-close on the status tracker
2026-07-13 10:37:12 -04:00
Joseph Doherty
437f82b145
fix(r2-04): AddressSpaceApplyOutcome carries RebuildFailed/FailedNodes; SafeRebuild returns bool (01/S-1)
2026-07-13 10:36:42 -04:00
Joseph Doherty
2e14fe1f24
test(runtime): golden TagConfig corpus + compose/decode parity characterization (R2-11)
2026-07-13 10:35:47 -04:00
Joseph Doherty
205d398055
fix(r2-10): breaker-close marker + IsBreakerOpen on ResilienceStatusSnapshot
2026-07-13 10:35:41 -04:00
Joseph Doherty
46fedda3e4
Merge R2-02 ResilienceConfig hardening (arch-review round 2) [PR #431 ]
...
v2-ci / build (push) Successful in 3m53s
v2-ci / unit-tests (push) Failing after 8m15s
Findings 01/S-6 (High — clamp hostile ResilienceConfig, no ValidationException
driver-brick), 01/U-6 (delete dead bulkhead knob), 01/S-8=03/S12 (Write/Ack
non-idempotent + retry->0), 04/C-7 (JsonObject round-trip preserves unknown
keys), 01/S-7=03/S13 (per-Create options-generation kills respawn cache race).
T15/T18 deferred. STATUS.md conflict resolved additively. Build clean.
2026-07-13 10:29:43 -04:00
Joseph Doherty
dd82e74011
docs(r2-02): record R2-02 resilience hardening pass in STATUS.md + execution deviations
v2-ci / build (pull_request) Successful in 4m17s
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (pull_request) Failing after 4m2s
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (pull_request) Failing after 1m47s
v2-ci / unit-tests (pull_request) Failing after 6m35s
2026-07-13 10:27:08 -04:00
Joseph Doherty
d8c6357be8
fix(r2-02): factory stamps a per-Create options generation — closes the respawn stale-pipeline race (01/S-7)
2026-07-13 10:23:25 -04:00
Joseph Doherty
5daf7155a8
fix(r2-02): options-generation in the pipeline cache key — stale respawn re-cache unreachable (01/S-7, 03/S13)
2026-07-13 10:22:07 -04:00
Joseph Doherty
901d4e6ed3
Merge R2-03 Virtual-Tag failure quality (arch-review round 2) [PR #430 ]
...
v2-ci / build (push) Successful in 4m2s
v2-ci / unit-tests (push) Failing after 8m20s
Findings 02/S13 (VT failure/timeout degrades node to Bad quality, no stale-Good
forever), 02/S12 (evaluator retry-once on disposed-race), 02/P7 (compile-cache
clear gated on changed expression set). T11/T12 deferred. STATUS.md conflict
resolved additively. Build clean.
2026-07-13 10:20:43 -04:00
Joseph Doherty
112f88c9fe
fix(r2-02): resilience section — parse-failure lockout + truthful raw pane (04/C-7; live-/run deferred)
2026-07-13 10:19:50 -04:00
Joseph Doherty
6bb91e8d1f
docs(r2-03): record execution deviations (T7 stress config, test-run scope)
v2-ci / build (pull_request) Successful in 3m55s
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (pull_request) Failing after 4m14s
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (pull_request) Failing after 1m44s
v2-ci / unit-tests (pull_request) Failing after 9m13s
2026-07-13 10:18:40 -04:00
Joseph Doherty
9e0a05dc6a
fix(r2-02): non-lossy ResilienceFormModel round-trip — preserve unknown keys, never overwrite unparseable stored JSON (04/C-7)
2026-07-13 10:18:31 -04:00
Joseph Doherty
534e03bc74
docs(archreview): record R2-03 (02/S13+S12+P7) fixed on branch; full VT suites green
2026-07-13 10:18:10 -04:00
Joseph Doherty
a916ae6ebe
perf(runtime): gate the VT apply-boundary compile-cache clear on a changed expression set (02/P7)
2026-07-13 10:15:47 -04:00
Joseph Doherty
07eec11d31
docs+test(r2-02): bulkhead doc sweep + parsed-knob-must-be-wired guard (01/U-6, OVERALL theme 1)
2026-07-13 10:15:32 -04:00
Joseph Doherty
fea6477f45
Merge R2-01 S7 fault-path hardening (arch-review round 2) [PR #429 ]
...
v2-ci / build (push) Successful in 3m37s
v2-ci / unit-tests (push) Failing after 6m49s
Findings 05/STAB-14 (High regression — connect-timeout OCE no longer silently
kills S7 subscriptions), STAB-15 (framing/desync + mid-PDU cancel fatal
classification), STAB-8 seam note. All prod changes in S7Driver.cs; T11 live
outage gate deferred. STATUS.md conflict resolved additively. Build clean.
2026-07-13 10:14:59 -04:00
Joseph Doherty
37664e6992
test(runtime): red — apply-boundary compile-cache clear must be gated on a changed expression set (02/P7)
2026-07-13 10:14:50 -04:00
Joseph Doherty
ef00d6e5aa
fix(host): retry VT evaluation once on ObjectDisposedException from the apply-boundary cache clear (02/S12)
2026-07-13 10:12:59 -04:00
Joseph Doherty
12b3206555
Merge R2-05 AdminUI authorization (arch-review round 2) [PR #428 ]
...
v2-ci / build (push) Successful in 3m27s
v2-ci / unit-tests (push) Failing after 8m29s
Finding 04/C-1 (High): explicit named-policy gating on all 38 AdminUI pages via
new AdminUiPolicies (ConfigEditor + AuthenticatedRead) + anti-drift reflection
guard. T15 live pass deferred (docker-dev auto-admin can't observe deny).
STATUS.md conflict resolved additively. Build clean.
2026-07-13 10:12:57 -04:00
Joseph Doherty
479057097a
Merge R2-06 ServerHistorian fail-fast + 0.2.0 DataType (arch-review round 2) [PR #427 ]
...
v2-ci / build (push) Successful in 3m15s
v2-ci / unit-tests (push) Failing after 8m17s
Findings 06/S-11 (fail-fast ServerHistorianOptionsValidator, no UriFormatException
crash-loop), 06/U-7 (0.2.0 Boolean->Int1 explicit-presence + retype probe),
06/C-7 (keep-populating decision doc). T12 live VPN gate deferred. STATUS.md conflict
(R2-12 bookkeeping) resolved additively. Build clean.
2026-07-13 10:10:48 -04:00
Joseph Doherty
524a0b5606
refactor(r2-02): remove bulkhead fields from the resilience form (01/U-6)
2026-07-13 10:10:06 -04:00