Commit Graph

166 Commits

Author SHA1 Message Date
Joseph Doherty 04fa2f5cb2 Merge R2-07 Surgical pure-adds (arch-review round 2) [PR #436]
v2-ci / build (push) Successful in 3m19s
v2-ci / unit-tests (push) Failing after 8m13s
Finding 03/P1: surgical in-place address-space adds/removals skip full rebuilds
(AddressSpaceChangeClassifier default-closed to Rebuild). 3 new
ISurgicalAddressSpaceSink remove members, guard-first + forwarded through
DeferredAddressSpaceSink (F10b inertness net green). T5/T6/T12/T14 over-the-wire +
docker-dev gates deferred. Auto-merged OtOpcUaNodeManager.cs with R2-08; verified
OpcUaServer.Tests 341/341 + forwarding guard 3/3. Build clean.
2026-07-13 12:27:59 -04:00
Joseph Doherty ded0595ca7 test+docs: mixed-deploy survival, STATUS/P1 close-out (R2-07 T14)
v2-ci / build (pull_request) Successful in 4m3s
v2-ci / unit-tests (pull_request) Failing after 9m47s
2026-07-13 12:24:50 -04:00
Joseph Doherty e2b47638ec feat(opcua): surgical mixed add+remove deploys (R2-07 T13) 2026-07-13 12:22:45 -04:00
Joseph Doherty 354d74d370 docs: ServerHistorian HistoryRead knobs + Security:Ldap resilience keys; R2-08 status (03/S2, 03/S3)
v2-ci / build (pull_request) Successful in 3m33s
v2-ci / unit-tests (pull_request) Failing after 9m24s
2026-07-13 12:21:33 -04:00
Joseph Doherty f4ea834fac test(opcua): subscription-survival on pure-remove + live-verify note (R2-07 T12) 2026-07-13 12:19:36 -04:00
Joseph Doherty 3cebfae417 feat(opcuaserver): process-wide HistoryRead batch limiter — flood degrades to BadTooManyOperations, not pool exhaustion (03/S3) 2026-07-13 12:18:35 -04:00
Joseph Doherty 502d7650d0 feat(opcua): surgical pure-remove deploys — scoped teardown, no full rebuild (R2-07 T11) 2026-07-13 12:18:08 -04:00
Joseph Doherty 888cf86655 feat(opcuaserver): per-request HistoryRead deadline — hung backends surface BadTimeout (03/S3) 2026-07-13 12:13:38 -04:00
Joseph Doherty 4504ed930c feat(opcua): surgical RemoveEquipmentSubtree with notifier demotion (R2-07 T10) 2026-07-13 12:12:09 -04:00
Joseph Doherty 9653493905 feat(opcua): surgical RemoveAlarmConditionNode (R2-07 T9) 2026-07-13 12:09:55 -04:00
Joseph Doherty 8c365da754 feat(opcuaserver): bounded per-node parallel HistoryRead within a batch (03/S3) 2026-07-13 12:09:53 -04:00
Joseph Doherty 14003ab9b8 feat(opcua): surgical RemoveVariableNode with NodeDeleted model-change (R2-07 T8) 2026-07-13 12:09:14 -04:00
Joseph Doherty 438004e371 feat(commons): add surgical remove members to ISurgicalAddressSpaceSink + deferred forwarding (guard-verified) (R2-07 T7) 2026-07-13 12:07:01 -04:00
Joseph Doherty cef7d9b281 refactor(opcuaserver): async-ify ServeRawPaged + HistoryReadEvents internals (03/S3) 2026-07-13 12:07:00 -04:00
Joseph Doherty 1e83fe7085 refactor(opcuaserver): async-ify ServeNode + Processed/AtTime HistoryRead internals, thread cancellation (03/S3) 2026-07-13 12:04:54 -04:00
Joseph Doherty 304442dba4 feat(runtime): ServerHistorian HistoryRead parallelism/limiter/deadline knobs + node-manager wiring (03/S3) 2026-07-13 12:03:27 -04:00
Joseph Doherty 4f1853b21f docs(archreview): record R2-07 Phase 1 (offline-verified; live gate deferred) in STATUS.md 2026-07-13 12:02:16 -04:00
Joseph Doherty d5c6609cdf test(opcuaserver): red repro — HistoryRead serves a batch strictly sequentially (03/S3) 2026-07-13 12:01:47 -04:00
Joseph Doherty 376233b92c test(opcua): over-the-wire subscription-survival on pure-add deploy (R2-07 T5) 2026-07-13 12:01:23 -04:00
Joseph Doherty 62a49779ac test(host): unreachable-directory activation fails bounded; document the SDK impersonation threading contract (03/S2) 2026-07-13 12:00:35 -04:00
Joseph Doherty e6280cb1da feat(runtime): announce added nodes after the materialise passes on non-rebuild applies (R2-07 T4b) 2026-07-13 11:58:40 -04:00
Joseph Doherty 0c785415a2 feat(host): LDAP directory-outage circuit — fail-fast denial during sustained outage (03/S2) 2026-07-13 11:56:45 -04:00
Joseph Doherty 21abe42a90 feat(host): hard wall-clock bound + bounded concurrency on OPC UA LDAP authentication (03/S2) 2026-07-13 11:52:10 -04:00
Joseph Doherty a86d9f65bf feat(opcua): make MaterialiseAlarmCondition idempotent for same-kind re-applies (R2-07 T4a) 2026-07-13 11:50:14 -04:00
Joseph Doherty 9dbc363ef0 feat(opcua): announce pure-add nodes via Part 3 NodeAdded model-change (R2-07 T3) 2026-07-13 11:48:02 -04:00
Joseph Doherty 0d717e4785 feat(opcua): route AddressSpaceApplier through the classifier — pure-add deploys no longer rebuild (R2-07 T2) 2026-07-13 11:46:24 -04:00
Joseph Doherty 0d5cb89d48 feat(security): LdapAuthResult.IsSystemFailure distinguishes directory outage from credential deny (03/S2) 2026-07-13 11:39:35 -04:00
Joseph Doherty 09faa05f06 feat(security): LDAP auth timeout/concurrency/outage-circuit options; project ConnectionTimeoutMs into the shared library (03/S2) 2026-07-13 11:38:37 -04:00
Joseph Doherty bb226f45ed feat(opcua): add AddressSpaceChangeClassifier — typed delta classification for the applier (R2-07 T1) 2026-07-13 11:38:30 -04:00
Joseph Doherty ce6d9e21d3 test(host): red repro — LDAP authenticator has no wall-clock bound on session activation (03/S2) 2026-07-13 11:36:32 -04:00
Joseph Doherty 1a698cbb97 Merge R2-11 TagConfig consolidation (arch-review round 2) [PR #434]
v2-ci / build (push) Successful in 3m55s
v2-ci / unit-tests (push) Failing after 8m14s
Findings 01/C-1, 01/P-1 (single TagConfigIntent.Parse in Commons, 4 copies
delegate, parse-once) + 05 CONV-2/UNDER-1/UNDER-6 (shared strict TagConfigJson
readers, per-driver Inspect() + writable key, FOCAS capability pre-flight,
Modbus probe timeoutMs, deploy-gate Warn|Error). Phase C runtime-strict flip
deferred. T22/T24 deferred. Auto-merged AddressSpaceApplier.cs + DriverHostActor.cs
with R2-04/R2-10; verified OpcUaServer.Tests 286/286 + Runtime.Tests 396/396.
Build clean.
2026-07-13 11:29:32 -04:00
Joseph Doherty 7c7d383da6 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
2026-07-13 11:25:42 -04:00
Joseph Doherty 7fc3b19961 docs: R2-11 TagConfig consolidation + strictness rollout decisions 2026-07-13 11:24:39 -04:00
Joseph Doherty 4449baac69 feat(adminui): writable checkbox in driver-typed tag editors (R2-11, 05/UNDER-6)
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.
2026-07-13 11:22:12 -04:00
Joseph Doherty d62b140ccd Merge R2-04 Failure-visibility trio (arch-review round 2) [PR #433]
v2-ci / build (push) Successful in 3m48s
v2-ci / unit-tests (push) Failing after 9m14s
Findings 01/S-1 (AddressSpaceApplyOutcome failure field + apply.failed logging,
no optimistic success), 06/S-1 (Galaxy write fails closed -> BadCommunicationError
+ #5 revert, no knowingly-lost raw Write), 03/S4 (PrimaryGatePolicy default-deny
unknown-role-multi-driver on all gates + scripted-alarm emit gate). T13/T15 (2-node
live gates) deferred -- T15 is the behavior-affecting S4 live gate, must run in heavy
pass. Clean merge, build clean.
2026-07-13 11:19:24 -04:00
Joseph Doherty 4260b6ecaa feat(controlplane): deploy-gate TagConfig strictness — Warn default, Error opt-in at the draft gate (R2-11, 05/CONV-2) 2026-07-13 11:15:34 -04:00
Joseph Doherty fd3b718892 docs(r2-04): record execution deviations + mark T13/T15 deferred-live
v2-ci / build (pull_request) Successful in 3m54s
v2-ci / unit-tests (pull_request) Failing after 7m43s
2026-07-13 11:15:21 -04:00
Joseph Doherty 8da54652c3 docs(r2-04): failure-visibility trio semantics (gate table, meters, Galaxy fail-closed) 2026-07-13 11:14:49 -04:00
Joseph Doherty 68588da05f test(r2-04): 2-node delivery-path guard for the primary write gate (deferred-live) 2026-07-13 11:13:31 -04:00
Joseph Doherty 1647942414 fix(r2-04): scripted-alarm alerts emit uses PrimaryGatePolicy (consistency with 03/S4) 2026-07-13 11:10:43 -04:00
Joseph Doherty 8401055c9d feat(controlplane): EquipmentTagConfigInspector — DriverType-dispatched deploy-time TagConfig inspection (R2-11) 2026-07-13 11:09:35 -04:00
Joseph Doherty b2a56ebf3b fix(driver-modbus): probe parses the factory DTO shape — timeoutMs no longer silently dropped (R2-11, 05/CONV-2) 2026-07-13 11:07:44 -04:00
Joseph Doherty c6f975b963 test(r2-04): primary-gate boot-window guards (deny-on-unknown multi-node, allow single-node) 2026-07-13 11:06:44 -04:00
Joseph Doherty 24435efa8b fix(driver-focas): equipment tags run the capability-matrix pre-flight authored tags get (R2-11, 05/UNDER-6) 2026-07-13 11:05:02 -04:00
Joseph Doherty e294416087 fix(driver-focas): equipment tags forced read-only until PMC writes exist; shared readers + Inspect (R2-11, 05/UNDER-1) 2026-07-13 11:01:55 -04:00
Joseph Doherty 4f5bbd253c feat(driver-twincat): shared TagConfigJson readers, writable key, Inspect warnings (R2-11) 2026-07-13 11:00:31 -04:00
Joseph Doherty 72b1600245 fix(r2-04): primary gates default-DENY on multi-driver clusters while role unknown (03/S4) 2026-07-13 10:59:43 -04:00
Joseph Doherty 6e2415bb4c feat(driver-ablegacy): shared TagConfigJson readers, writable key, Inspect warnings (R2-11) 2026-07-13 10:59:27 -04:00
Joseph Doherty d374ba332b feat(driver-abcip): shared TagConfigJson readers + Inspect warnings (R2-11) 2026-07-13 10:58:17 -04:00
Joseph Doherty 1cceef406e feat(driver-s7): shared TagConfigJson readers, writable key, Inspect warnings (R2-11) 2026-07-13 10:57:01 -04:00