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
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
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
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
d67900e455
test(host): red repro — apply-boundary cache clear races in-flight VT evaluation into ObjectDisposedException (02/S12)
2026-07-13 10:09:37 -04:00
Joseph Doherty
bdb7ed412d
docs(archreview): R2-01 S7 fault-path hardening complete — STAB-14/15 fixed, STAB-8 seam documented (task 12)
v2-ci / build (pull_request) Successful in 3m28s
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (pull_request) Failing after 3m34s
v2-ci / unit-tests (pull_request) Failing after 9m12s
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (pull_request) Failing after 1m46s
2026-07-13 10:09:03 -04:00
Joseph Doherty
d59e6b5934
docs(r2-06): mark T12 live gate deferred-live + record execution deviations (06/U-7)
v2-ci / build (pull_request) Successful in 3m55s
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (pull_request) Failing after 3m51s
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (pull_request) Failing after 1m43s
v2-ci / unit-tests (pull_request) Failing after 8m36s
2026-07-13 10:07:37 -04:00
Joseph Doherty
6c1f05cba9
docs(r2-05): flip 04/C-1 to FIXED, record execution deviations + task status
v2-ci / build (pull_request) Successful in 3m50s
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (pull_request) Failing after 3m35s
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (pull_request) Failing after 1m42s
v2-ci / unit-tests (pull_request) Failing after 9m55s
2026-07-13 10:07:27 -04:00
Joseph Doherty
fc38cee00e
docs(r2-06): record S-11/U-7/C-7 remediation in STATUS.md + 06 report rows (06/S-11,U-7,C-7)
2026-07-13 10:07:00 -04:00
Joseph Doherty
3c81f6ebf8
Merge R2-12 repo hygiene (arch-review round 2) [PR #426 ]
...
v2-ci / build (push) Successful in 3m21s
v2-ci / unit-tests (push) Failing after 8m24s
Findings 07/U-3/4/5/6, S-3, P-5, C-4/5/6: remove orphaned AVEVA lib/ DLLs,
untrack/archive planning files, delete no-op E2E workflow + redundant CI job,
document alarm CLI commands, xunit pin hygiene. Isolated; clean build.
2026-07-13 10:06:17 -04:00
Joseph Doherty
a1b22f979d
test(r2-01): env-gated live connect-timeout outage test — the STAB-14 outage class the bounce test cannot produce (task 11)
2026-07-13 10:06:08 -04:00
Joseph Doherty
4640ecb19b
docs(r2-06): note WriteLiveValues Quality is a documented-dead input (0.2.0 C-002); keep 192 populated (06/C-7)
2026-07-13 10:04:29 -04:00
Joseph Doherty
92b2ac4891
docs(r2-01): mark EnsureConnectedAsync as the R2-09 connect-throttle seam (STAB-8 note, task 10)
2026-07-13 10:04:22 -04:00
Joseph Doherty
8999c722a0
fix(r2-01): probe failures mark the handle dead under the gate so the next tick reopens (STAB-15b, task 9)
2026-07-13 10:03:36 -04:00
Joseph Doherty
1455550d0c
chore(r2-12): mark T11 final verification complete
v2-ci / build (pull_request) Successful in 3m22s
v2-ci / unit-tests (pull_request) Failing after 8m31s
2026-07-13 10:02:53 -04:00
Joseph Doherty
04a9edab7e
docs(r2-12): record R2-12 repo-hygiene execution + open follow-ups in STATUS.md
2026-07-13 10:02:38 -04:00
Joseph Doherty
e5cf986a10
docs(r2-06): 0.2.0 DataType provisioning delta (upsert/retype) + HISTGW_BOOL_SANDBOX_TAG recipe (06/U-7)
2026-07-13 10:02:37 -04:00
Joseph Doherty
dad783514a
docs(security): document AdminUI policy tiers (ConfigEditor/AuthenticatedRead) + R2-05 status
2026-07-13 10:01:52 -04:00
Joseph Doherty
33044061c3
fix(r2-01): cancellation observed mid-PDU marks the connection dead before propagating (STAB-15a, task 8)
2026-07-13 10:01:20 -04:00
Joseph Doherty
152d8ebe0e
test(r2-12): document + patch-align the xunit v2 holdout pin (07/C-4)
...
Branch B (upstream-blocked): probed nuget.org for an xunit.v3 Akka TestKit —
Akka.TestKit.Xunit3 and Akka.TestKit.Xunit.v3 both return BlobNotFound (verified
2026-07-13), so the 3 holdouts (AdminUI/ControlPlane/Runtime.Tests) cannot migrate
off xunit v2 yet. Bumped the pin 2.9.2 -> 2.9.3 (latest 2.9.x) and moved the blocker
rationale + removal condition to a comment at the pin in Directory.Packages.props so
it lives at the version, not just in 3 scattered csprojs. All 3 suites green on 2.9.3
(514 + 63 + 364 tests).
2026-07-13 10:01:12 -04:00
Joseph Doherty
1aa89d754f
test(r2-06): HISTGW_BOOL_SANDBOX_TAG fixture + Boolean EnsureTags leg + retype probe (skip-clean offline) (06/U-7)
2026-07-13 10:01:12 -04:00
Joseph Doherty
aac3285468
refactor(adminui): replace authorization string literals with AdminUiPolicies constants
2026-07-13 09:58:42 -04:00
Joseph Doherty
dab0029add
fix(r2-01): classify ISO-on-TCP framing/desync faults as connection-fatal (STAB-15a, task 7)
2026-07-13 09:58:11 -04:00
Joseph Doherty
dc2f3fa970
test(r2-06): pin 0.2.0 Boolean->Int1 explicit-presence (HasDataType) provisioning (06/U-7)
2026-07-13 09:58:07 -04:00
Joseph Doherty
6e1903b231
docs(r2-12): document 5 alarm operator CLI commands; fix StyleGuide product name; add minimal .editorconfig (07/U-3, 07/C-5)
...
- docs/Client.CLI.md: added ### ack / confirm / shelve / enable / disable sections
(synopsis + options + example + expected output), each noting the AlarmAck LDAP-role
gate and that --event-id comes from a prior `alarms` notification. Doc now covers all
13 CLI commands (was 8). Overview operations list updated.
- StyleGuide.md: 'ScadaBridge' -> 'OtOpcUa' (header line 3) + the ScadaBridge:Timeout
config-key example -> OpcUa:Timeout.
- .editorconfig (new, root): minimal code-style anchor; all C# analyzer rules at
suggestion severity so nothing fails a TreatWarningsAsErrors build (verified: 808
warnings unchanged from baseline, 0 errors).
2026-07-13 09:57:36 -04:00
Joseph Doherty
b77bbd13b7
fix(r2-06): warning parity — malformed-endpoint warning in ServerHistorianOptions.Validate() (06/S-11)
2026-07-13 09:57:29 -04:00
Joseph Doherty
8aed9ac365
fix(r2-01): RED framing-fault classification Theory T5 (STAB-15a, task 6)
2026-07-13 09:57:08 -04:00
Joseph Doherty
b5bf4b73ff
fix(adminui): gate every page with named policies — ConfigEditor on the mutating surface (R2-05, 04/C-1)
2026-07-13 09:56:08 -04:00
Joseph Doherty
05c35c93d9
test(host): pin sequential clear-then-recompile contract of RoslynVirtualTagEvaluator (02/S12 baseline)
2026-07-13 09:55:44 -04:00
Joseph Doherty
066514fed3
docs(r2-01): Finding-1 close gate — S7 unit 238/238 green; record pre-existing out-of-scope CLI comment-test failure (task 5)
2026-07-13 09:55:39 -04:00
Joseph Doherty
e748f929c8
fix(r2-06): wire AddValidatedOptions<ServerHistorianOptions> + alarm-only-mode startup warning in Program.cs (06/S-11)
2026-07-13 09:55:25 -04:00
Joseph Doherty
f2006adb79
test(runtime): pin VT inputs-ready gate — no Bad flash before all dependencies arrive (02/S13)
2026-07-13 09:55:04 -04:00
Joseph Doherty
5369994e57
fix(r2-06): GREEN — ServerHistorianOptionsValidator (consumer-gated fail-fast on bad Endpoint) (06/S-11)
2026-07-13 09:54:37 -04:00
Joseph Doherty
67de2c942b
ci(r2-12): delete no-op nightly E2E workflow + redundant integration matrix (07/S-3, 07/P-5)
...
- v2-e2e.yml deleted: its `--filter Category=E2E` matches zero tests repo-wide (the
E2ETests project doesn't exist) so it reported a permanent false green; and its
docker-dev fleet binds the LAN-only shared GLAuth (10.100.0.35:3893) + builds local
images, so it isn't hosted-runner-bootable anyway. FOLLOW-UP: when a runner-reachable
fleet + a real tests/Server/...E2ETests land, add a fresh workflow WITH a zero-match
guard (fail if Category=E2E matches nothing).
- v2-ci.yml integration matrix removed: fully redundant with the unit-tests leg, which
already runs both Host.IntegrationTests + OpcUaServer.IntegrationTests under the
identical filter, fixtureless, gated at MIN_EXECUTED=1. No coverage lost. The S-2
option-#2 fixture-backed-leg follow-up is preserved as a NOTE comment in the workflow.
Header comments updated; YAML validates; jobs are now build -> unit-tests.
2026-07-13 09:54:22 -04:00
Joseph Doherty
963543a578
fix(r2-01): filter OCE catches on the owning token in read/write wrappers + poll loop (STAB-14 defense-in-depth, task 4)
2026-07-13 09:54:03 -04:00
Joseph Doherty
987459fab3
test(runtime): pin VT Bad-quality transition semantics — once-per-transition, same-value recovery, throw path (02/S13)
2026-07-13 09:53:59 -04:00
Joseph Doherty
35d8abee84
fix(r2-06): RED — ServerHistorianOptionsValidator unit + wiring tests (net-new type; does not compile) (06/S-11)
2026-07-13 09:53:21 -04:00
Joseph Doherty
73d4061b77
chore(r2-12): untrack/archive root planning files; honor pending.md's never-stage rule (07/U-4)
...
- pending.md, current.md: git rm --cached (untrack, keep on disk) + root-anchored
.gitignore entries — making the files' own declared 'never stage' rule true.
- looseends.md: deleted (2026-05-18 snapshot; sole open item + all follow-ups
target the retired Wonderware historian sidecar rig, moot since the gateway
cutover; recoverable from history).
- stillpending.md -> docs/plans/2026-06-18-stillpending-backlog-audit.md (git mv;
referenced by docs/Historian.md + memory index, preserved under dated-plan convention).
- HISTORIAN-GATEWAY-INTEGRATION-ISSUES.md -> docs/plans/2026-06-27-historian-gateway-integration-issues.md (git mv).
- docs/Historian.md §'Closed backlog §2 items' repointed at the archived path.
Historical docs/plans/* references to the bare stillpending.md filename are frozen
point-in-time records, left untouched per the documentation-audit convention.
2026-07-13 09:53:01 -04:00
Joseph Doherty
01253818de
fix(runtime): VT script failure/timeout degrades node quality to Bad once per transition (02/S13)
2026-07-13 09:52:56 -04:00
Joseph Doherty
4bb25fc039
fix(r2-01): surface connect-timeout as TimeoutException, not OCE — poll loops no longer die on unreachable-host outages (STAB-14, task 3)
2026-07-13 09:52:42 -04:00
Joseph Doherty
183b72b7cb
feat(security): add ConfigEditor + AuthenticatedRead AdminUI policies behind AdminUiPolicies constants
2026-07-13 09:52:13 -04:00
Joseph Doherty
3108abc13b
fix(r2-06): GREEN adapter guard — TryCreate + named InvalidOperationException on bad ServerHistorian:Endpoint (06/S-11)
2026-07-13 09:52:07 -04:00
Joseph Doherty
7813304199
fix(r2-01): RED poll-loop-survival T2 + caller-cancel pinning T4 (task 2)
2026-07-13 09:51:57 -04:00
Joseph Doherty
3a049a13a4
fix(r2-06): RED repro — misconfigured ServerHistorian:Endpoint should fail with a named error, not UriFormatException (06/S-11)
2026-07-13 09:51:31 -04:00
Joseph Doherty
c5ca3e8587
feat(runtime): EvaluationResult carries OpcUaQuality; VT bridge publishes it + historizes BadInternalError on Bad (02/S13)
2026-07-13 09:51:15 -04:00