Commit Graph

  • e27416956e fix(r2-09): B5.4 five driver suites green (Modbus 312, AbCip 336, AbLegacy 209, TwinCAT 185, FOCAS 265); B5 complete Joseph Doherty 2026-07-13 12:29:52 -04:00
  • e69d3b3b0f fix(modbus): equipment tags carry unitId; ResolveHost keys per-unit via the resolver (CONV-4) Joseph Doherty 2026-07-13 12:29:13 -04:00
  • 04fa2f5cb2 Merge R2-07 Surgical pure-adds (arch-review round 2) [PR #436] Joseph Doherty 2026-07-13 12:27:59 -04:00
  • 9262dd25b7 fix(drivers): ResolveHost resolves equipment-tag refs via EquipmentTagRefResolver — per-host breaker isolation (CONV-4) Joseph Doherty 2026-07-13 12:26:42 -04:00
  • ded0595ca7 test+docs: mixed-deploy survival, STATUS/P1 close-out (R2-07 T14) Joseph Doherty 2026-07-13 12:24:50 -04:00
  • 8a7701db3f test(drivers): failing repro for CONV-4 equipment-tag ResolveHost mis-keying Joseph Doherty 2026-07-13 12:23:43 -04:00
  • a004931ff0 Merge R2-08 Async LDAP + HistoryRead (arch-review round 2) [PR #435] Joseph Doherty 2026-07-13 12:23:21 -04:00
  • e2b47638ec feat(opcua): surgical mixed add+remove deploys (R2-07 T13) Joseph Doherty 2026-07-13 12:22:45 -04:00
  • 354d74d370 docs: ServerHistorian HistoryRead knobs + Security:Ldap resilience keys; R2-08 status (03/S2, 03/S3) Joseph Doherty 2026-07-13 12:21:33 -04:00
  • dd01565d9a docs(s7): point R2-01 at the shipped ConnectionBackoff primitive for the S7 connect throttle (05/STAB-8 seam); B4 complete Joseph Doherty 2026-07-13 12:20:58 -04:00
  • 86742ad8cb fix(abcip): throttle evict-recreate Forward-Open attempts per device (05/STAB-8) Joseph Doherty 2026-07-13 12:20:10 -04:00
  • f4ea834fac test(opcua): subscription-survival on pure-remove + live-verify note (R2-07 T12) Joseph Doherty 2026-07-13 12:19:36 -04:00
  • 3cebfae417 feat(opcuaserver): process-wide HistoryRead batch limiter — flood degrades to BadTooManyOperations, not pool exhaustion (03/S3) Joseph Doherty 2026-07-13 12:18:35 -04:00
  • 502d7650d0 feat(opcua): surgical pure-remove deploys — scoped teardown, no full rebuild (R2-07 T11) Joseph Doherty 2026-07-13 12:18:08 -04:00
  • e54af9b948 fix(focas): per-device connect-attempt backoff across the three loops (05/STAB-8) Joseph Doherty 2026-07-13 12:16:31 -04:00
  • 888cf86655 feat(opcuaserver): per-request HistoryRead deadline — hung backends surface BadTimeout (03/S3) Joseph Doherty 2026-07-13 12:13:38 -04:00
  • 962afed241 fix(twincat): per-device connect-attempt backoff, probe-driven recovery (05/STAB-8) Joseph Doherty 2026-07-13 12:13:23 -04:00
  • 4504ed930c feat(opcua): surgical RemoveEquipmentSubtree with notifier demotion (R2-07 T10) Joseph Doherty 2026-07-13 12:12:09 -04:00
  • 9653493905 feat(opcua): surgical RemoveAlarmConditionNode (R2-07 T9) Joseph Doherty 2026-07-13 12:09:55 -04:00
  • 8c365da754 feat(opcuaserver): bounded per-node parallel HistoryRead within a batch (03/S3) Joseph Doherty 2026-07-13 12:09:53 -04:00
  • defb7a8c3d fix(r2-09): B3.7 engine + 5 driver suites green (S7 254, Modbus 308, AbCip 331, AbLegacy 207, TwinCAT 181, FOCAS 260); B3 complete Joseph Doherty 2026-07-13 12:09:18 -04:00
  • 14003ab9b8 feat(opcua): surgical RemoveVariableNode with NodeDeleted model-change (R2-07 T8) Joseph Doherty 2026-07-13 12:09:14 -04:00
  • 85ef74ea86 refactor(s7): retire the bespoke poll fork onto PollGroupEngine v2 (CONV-1; fixes PERF-3 + STAB-6-S7; deletes the fork's bare-OCE poll-death — cross-ref plan R2-01) Joseph Doherty 2026-07-13 12:07:39 -04:00
  • 438004e371 feat(commons): add surgical remove members to ISurgicalAddressSpaceSink + deferred forwarding (guard-verified) (R2-07 T7) Joseph Doherty 2026-07-13 12:07:01 -04:00
  • cef7d9b281 refactor(opcuaserver): async-ify ServeRawPaged + HistoryReadEvents internals (03/S3) Joseph Doherty 2026-07-13 12:07:00 -04:00
  • 0d879363f8 test(s7): failing guards for the poll-fork retirement (PERF-3, STAB-6) Joseph Doherty 2026-07-13 12:05:08 -04:00
  • 1e83fe7085 refactor(opcuaserver): async-ify ServeNode + Processed/AtTime HistoryRead internals, thread cancellation (03/S3) Joseph Doherty 2026-07-13 12:04:54 -04:00
  • 304442dba4 feat(runtime): ServerHistorian HistoryRead parallelism/limiter/deadline knobs + node-manager wiring (03/S3) Joseph Doherty 2026-07-13 12:03:27 -04:00
  • 4f1853b21f docs(archreview): record R2-07 Phase 1 (offline-verified; live gate deferred) in STATUS.md Joseph Doherty 2026-07-13 12:02:16 -04:00
  • d5c6609cdf test(opcuaserver): red repro — HistoryRead serves a batch strictly sequentially (03/S3) Joseph Doherty 2026-07-13 12:01:47 -04:00
  • 376233b92c test(opcua): over-the-wire subscription-survival on pure-add deploy (R2-07 T5) Joseph Doherty 2026-07-13 12:01:23 -04:00
  • 62a49779ac test(host): unreachable-directory activation fails bounded; document the SDK impersonation threading contract (03/S2) Joseph Doherty 2026-07-13 12:00:35 -04:00
  • b494d09d9b fix(drivers): wire PollGroupEngine onError->health + 30s poll backoff (05/STAB-9) [twincat,focas] Joseph Doherty 2026-07-13 11:59:49 -04:00
  • e6280cb1da feat(runtime): announce added nodes after the materialise passes on non-rebuild applies (R2-07 T4b) Joseph Doherty 2026-07-13 11:58:40 -04:00
  • 9213c037b0 fix(drivers): wire PollGroupEngine onError->health + 30s poll backoff (05/STAB-9) [modbus,abcip,ablegacy] Joseph Doherty 2026-07-13 11:57:25 -04:00
  • 0c785415a2 feat(host): LDAP directory-outage circuit — fail-fast denial during sustained outage (03/S2) Joseph Doherty 2026-07-13 11:56:45 -04:00
  • 21abe42a90 feat(host): hard wall-clock bound + bounded concurrency on OPC UA LDAP authentication (03/S2) Joseph Doherty 2026-07-13 11:52:10 -04:00
  • ca6530c7f5 feat(core): PollGroupEngine v2 — failure backoff + caller-token-filtered OCE exit (CONV-1/STAB-8; STAB-14-class engine guard) Joseph Doherty 2026-07-13 11:51:50 -04:00
  • a86d9f65bf feat(opcua): make MaterialiseAlarmCondition idempotent for same-kind re-applies (R2-07 T4a) Joseph Doherty 2026-07-13 11:50:14 -04:00
  • b8cf3cce0b feat(core): ConnectionBackoff primitive — shared capped-exponential backoff + attempt throttle (05/STAB-8; seam for R2-01 S7 wiring) Joseph Doherty 2026-07-13 11:48:49 -04:00
  • 9dbc363ef0 feat(opcua): announce pure-add nodes via Part 3 NodeAdded model-change (R2-07 T3) Joseph Doherty 2026-07-13 11:48:02 -04:00
  • 4231afb268 fix(focas): ConcurrentDictionary for fixed-tree caches (05/STAB-5) Joseph Doherty 2026-07-13 11:46:55 -04:00
  • 0d717e4785 feat(opcua): route AddressSpaceApplier through the classifier — pure-add deploys no longer rebuild (R2-07 T2) Joseph Doherty 2026-07-13 11:46:24 -04:00
  • bb8386d126 test(focas): failing repro for STAB-5 cross-thread Dictionary mutation Joseph Doherty 2026-07-13 11:46:12 -04:00
  • 00dcb547e6 fix(abcip): serialize Read/GetStatus/Decode + Encode/Write/GetStatus per runtime (05/STAB-4) Joseph Doherty 2026-07-13 11:42:51 -04:00
  • e48609b000 feat(abcip): per-runtime operation lock on DeviceState (AbLegacy pattern) Joseph Doherty 2026-07-13 11:41:03 -04:00
  • 32f248c93d test(abcip): failing repro for STAB-4 unserialized shared-handle ops Joseph Doherty 2026-07-13 11:40:17 -04:00
  • 0d5cb89d48 feat(security): LdapAuthResult.IsSystemFailure distinguishes directory outage from credential deny (03/S2) Joseph Doherty 2026-07-13 11:39:35 -04:00
  • 09faa05f06 feat(security): LDAP auth timeout/concurrency/outage-circuit options; project ConnectionTimeoutMs into the shared library (03/S2) Joseph Doherty 2026-07-13 11:38:37 -04:00
  • bb226f45ed feat(opcua): add AddressSpaceChangeClassifier — typed delta classification for the applier (R2-07 T1) Joseph Doherty 2026-07-13 11:38:30 -04:00
  • e0998b82c3 fix(r2-09): B1.3 Modbus suites green (306+161); STAB-3 sub-batch complete Joseph Doherty 2026-07-13 11:37:46 -04:00
  • 98f4860103 fix(modbus): classify per-op timeout + framing violations connection-fatal (05/STAB-3) Joseph Doherty 2026-07-13 11:37:13 -04:00
  • ce6d9e21d3 test(host): red repro — LDAP authenticator has no wall-clock bound on session activation (03/S2) Joseph Doherty 2026-07-13 11:36:32 -04:00
  • 141c143586 test(modbus): failing repro for STAB-3 timeout/framing stream desync Joseph Doherty 2026-07-13 11:35:20 -04:00
  • 1a698cbb97 Merge R2-11 TagConfig consolidation (arch-review round 2) [PR #434] Joseph Doherty 2026-07-13 11:29:32 -04:00
  • 7c7d383da6 docs(r2-11): record T24 final-sweep gates (grep clean, build 0 errors) + deferred-live notes Joseph Doherty 2026-07-13 11:25:42 -04:00
  • 7fc3b19961 docs: R2-11 TagConfig consolidation + strictness rollout decisions Joseph Doherty 2026-07-13 11:24:39 -04:00
  • 4449baac69 feat(adminui): writable checkbox in driver-typed tag editors (R2-11, 05/UNDER-6) Joseph Doherty 2026-07-13 11:22:12 -04:00
  • d62b140ccd Merge R2-04 Failure-visibility trio (arch-review round 2) [PR #433] Joseph Doherty 2026-07-13 11:19:24 -04:00
  • 4260b6ecaa feat(controlplane): deploy-gate TagConfig strictness — Warn default, Error opt-in at the draft gate (R2-11, 05/CONV-2) Joseph Doherty 2026-07-13 11:15:34 -04:00
  • fd3b718892 docs(r2-04): record execution deviations + mark T13/T15 deferred-live Joseph Doherty 2026-07-13 11:15:21 -04:00
  • 8da54652c3 docs(r2-04): failure-visibility trio semantics (gate table, meters, Galaxy fail-closed) Joseph Doherty 2026-07-13 11:14:49 -04:00
  • 68588da05f test(r2-04): 2-node delivery-path guard for the primary write gate (deferred-live) Joseph Doherty 2026-07-13 11:13:31 -04:00
  • 1647942414 fix(r2-04): scripted-alarm alerts emit uses PrimaryGatePolicy (consistency with 03/S4) Joseph Doherty 2026-07-13 11:10:43 -04:00
  • 8401055c9d feat(controlplane): EquipmentTagConfigInspector — DriverType-dispatched deploy-time TagConfig inspection (R2-11) Joseph Doherty 2026-07-13 11:09:35 -04:00
  • b2a56ebf3b fix(driver-modbus): probe parses the factory DTO shape — timeoutMs no longer silently dropped (R2-11, 05/CONV-2) Joseph Doherty 2026-07-13 11:07:44 -04:00
  • c6f975b963 test(r2-04): primary-gate boot-window guards (deny-on-unknown multi-node, allow single-node) Joseph Doherty 2026-07-13 11:06:44 -04:00
  • 24435efa8b fix(driver-focas): equipment tags run the capability-matrix pre-flight authored tags get (R2-11, 05/UNDER-6) Joseph Doherty 2026-07-13 11:05:02 -04:00
  • e294416087 fix(driver-focas): equipment tags forced read-only until PMC writes exist; shared readers + Inspect (R2-11, 05/UNDER-1) Joseph Doherty 2026-07-13 11:01:55 -04:00
  • 4f5bbd253c feat(driver-twincat): shared TagConfigJson readers, writable key, Inspect warnings (R2-11) Joseph Doherty 2026-07-13 11:00:31 -04:00
  • 72b1600245 fix(r2-04): primary gates default-DENY on multi-driver clusters while role unknown (03/S4) Joseph Doherty 2026-07-13 10:59:43 -04:00
  • 6e2415bb4c feat(driver-ablegacy): shared TagConfigJson readers, writable key, Inspect warnings (R2-11) Joseph Doherty 2026-07-13 10:59:27 -04:00
  • d374ba332b feat(driver-abcip): shared TagConfigJson readers + Inspect warnings (R2-11) Joseph Doherty 2026-07-13 10:58:17 -04:00
  • 1cceef406e feat(driver-s7): shared TagConfigJson readers, writable key, Inspect warnings (R2-11) Joseph Doherty 2026-07-13 10:57:01 -04:00
  • f2e899aaad feat(r2-04): PrimaryGatePolicy - membership-aware default-deny + denial meter (03/S4) Joseph Doherty 2026-07-13 10:55:46 -04:00
  • 64b9bba9e9 feat(driver-modbus): shared TagConfigJson readers, writable key, Inspect warnings (R2-11) Joseph Doherty 2026-07-13 10:55:41 -04:00
  • edbbc0438c test(r2-04): live guard - advised write remains Good under fail-closed advise (skip-gated) Joseph Doherty 2026-07-13 10:54:13 -04:00
  • 084c6e3cee feat(r2-04): meter unconfirmed + advise-failed Galaxy writes Joseph Doherty 2026-07-13 10:53:17 -04:00
  • a9b7a5002a feat(core-abstractions): TagConfigJson shared strict-capable field readers (R2-11, 05/CONV-2) Joseph Doherty 2026-07-13 10:53:13 -04:00
  • 19c14301e9 Merge R2-10 Resilience observability (arch-review round 2) [PR #432] Joseph Doherty 2026-07-13 10:52:27 -04:00
  • 9c94d51bf4 test(opcuaserver): retire ExtractTag* tests — byte-parity authority is Commons TagConfigIntentTests (R2-11) Joseph Doherty 2026-07-13 10:51:19 -04:00
  • 610306734c fix(r2-04): Galaxy fail-closed write when AdviseSupervisory fails - Bad status feeds #5 node revert (06/S-1) Joseph Doherty 2026-07-13 10:51:16 -04:00
  • 4b86beef28 refactor(core): EquipmentNodeWalker.ExtractFullName delegates to TagConfigIntent; repoint canonical-parser doc cites (R2-11) Joseph Doherty 2026-07-13 10:50:50 -04:00
  • 1e3552dbd5 docs(archreview): R2-10 resilience observability shipped Joseph Doherty 2026-07-13 10:50:02 -04:00
  • a3c2b11e34 refactor(config): DraftValidator Galaxy rule reads ExplicitFullName via TagConfigIntent (R2-11) Joseph Doherty 2026-07-13 10:48:50 -04:00
  • a537d29f44 refactor(r2-04): internal IMxWriteOps seam under GatewayGalaxyDataWriter (sealed SDK session untestable) Joseph Doherty 2026-07-13 10:48:30 -04:00
  • c1e19ea954 refactor(runtime): DeploymentArtifact decodes TagConfig via shared TagConfigIntent (R2-11, 01/C-1) Joseph Doherty 2026-07-13 10:47:51 -04:00
  • cc5ecb5868 fix(r2-10): breaker/retry chips on the driver status panel Joseph Doherty 2026-07-13 10:46:47 -04:00
  • 7bbec77716 refactor(runtime,opcuaserver): device-host normalization re-homed to Commons DeviceConfigIntent (R2-11) Joseph Doherty 2026-07-13 10:46:30 -04:00
  • 38c059dae7 fix(r2-10): driver-resilience-status DPS bridge Joseph Doherty 2026-07-13 10:44:44 -04:00
  • 759125372a fix(r2-04): surface degraded address-space applies (Error log + otopcua.opcua.apply.failed) Joseph Doherty 2026-07-13 10:44:18 -04:00
  • 99ce5b401e fix(r2-10): in-process resilience status store Joseph Doherty 2026-07-13 10:43:47 -04:00
  • 12b2ce078b fix(r2-10): register the tracker's production reader on driver nodes + wiring guard Joseph Doherty 2026-07-13 10:42:18 -04:00
  • a452a20947 refactor(opcuaserver): composer parses TagConfig once per tag via TagConfigIntent (R2-11, 01/P-1) Joseph Doherty 2026-07-13 10:42:08 -04:00
  • e37abf36a0 fix(r2-04): Materialise* passes return swallowed-failure tallies (void -> int) Joseph Doherty 2026-07-13 10:41:19 -04:00
  • 37f180c5a3 fix(r2-10): periodic DPS publisher for tracker snapshots Joseph Doherty 2026-07-13 10:40:54 -04:00
  • b6633f7562 feat(commons): DeviceConfigIntent — device-host extraction + normalization home (R2-11) Joseph Doherty 2026-07-13 10:39:54 -04:00
  • 2cb3f962b9 fix(r2-10): DriverResilienceStatusChanged DPS contract Joseph Doherty 2026-07-13 10:39:18 -04:00
  • cd3f1270ee feat(commons): TagConfigIntent.Parse — single home for the byte-parity TagConfig intents (R2-11, 01/C-1) Joseph Doherty 2026-07-13 10:39:07 -04:00
  • 0ba60db1e4 fix(r2-10): successful capability calls reset ConsecutiveFailures Joseph Doherty 2026-07-13 10:38:51 -04:00