Commit Graph

2281 Commits

Author SHA1 Message Date
Joseph Doherty 962afed241 fix(twincat): per-device connect-attempt backoff, probe-driven recovery (05/STAB-8) 2026-07-13 12:13:23 -04:00
Joseph Doherty 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 2026-07-13 12:09:18 -04:00
Joseph Doherty 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) 2026-07-13 12:07:39 -04:00
Joseph Doherty 0d879363f8 test(s7): failing guards for the poll-fork retirement (PERF-3, STAB-6) 2026-07-13 12:05:08 -04:00
Joseph Doherty b494d09d9b fix(drivers): wire PollGroupEngine onError->health + 30s poll backoff (05/STAB-9) [twincat,focas] 2026-07-13 11:59:49 -04:00
Joseph Doherty 9213c037b0 fix(drivers): wire PollGroupEngine onError->health + 30s poll backoff (05/STAB-9) [modbus,abcip,ablegacy] 2026-07-13 11:57:25 -04:00
Joseph Doherty ca6530c7f5 feat(core): PollGroupEngine v2 — failure backoff + caller-token-filtered OCE exit (CONV-1/STAB-8; STAB-14-class engine guard) 2026-07-13 11:51:50 -04:00
Joseph Doherty b8cf3cce0b feat(core): ConnectionBackoff primitive — shared capped-exponential backoff + attempt throttle (05/STAB-8; seam for R2-01 S7 wiring) 2026-07-13 11:48:49 -04:00
Joseph Doherty 4231afb268 fix(focas): ConcurrentDictionary for fixed-tree caches (05/STAB-5) 2026-07-13 11:46:55 -04:00
Joseph Doherty bb8386d126 test(focas): failing repro for STAB-5 cross-thread Dictionary mutation 2026-07-13 11:46:12 -04:00
Joseph Doherty 00dcb547e6 fix(abcip): serialize Read/GetStatus/Decode + Encode/Write/GetStatus per runtime (05/STAB-4) 2026-07-13 11:42:51 -04:00
Joseph Doherty e48609b000 feat(abcip): per-runtime operation lock on DeviceState (AbLegacy pattern) 2026-07-13 11:41:03 -04:00
Joseph Doherty 32f248c93d test(abcip): failing repro for STAB-4 unserialized shared-handle ops 2026-07-13 11:40:17 -04:00
Joseph Doherty e0998b82c3 fix(r2-09): B1.3 Modbus suites green (306+161); STAB-3 sub-batch complete 2026-07-13 11:37:46 -04:00
Joseph Doherty 98f4860103 fix(modbus): classify per-op timeout + framing violations connection-fatal (05/STAB-3) 2026-07-13 11:37:13 -04:00
Joseph Doherty 141c143586 test(modbus): failing repro for STAB-3 timeout/framing stream desync 2026-07-13 11:35:20 -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
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