docs(history): OtOpcUa hardware-available batch #640-#646 (alarm carry-over, honest deploy acks, OpcUaClient/AbCip alarm routing)

Claude-Session: https://claude.ai/code/session_01Ef2ozxS7QPanGT8uoATbTe
This commit is contained in:
Joseph Doherty
2026-10-08 18:23:34 -04:00
parent a2b40b7922
commit df21d365ec
@@ -91,3 +91,14 @@ AddRoute of the dev Mac (`oee-tagdump-mac`, `10.181.206.245.1.1`) on the two tes
QualifiedName so every alarm read inactive (ScadaBridge's `RealOpcUaClient` builds the two-element path and was always right);
#630 re-Initialize releases prior device state in six drivers; #631 AdminUI modal backdrop; S7/OpcUaClient/AbLegacy/TwinCAT
driver-gap ports (#632-#637). FOCAS stays read-only (#268-#271 won't-port).
- **Hardware-available batch #640-#646 + trackers (2026-10-08, OtOpcUa `master` `a8b07ae1..88016317`).** Parallel worktree
agents + opus/sonnet review, live-gated on docker-dev + S7/ab_server/focas-sim/opc-plc/MTConnect fixtures. **ScadaBridge-visible:**
(1) **#641 native alarm state survives an address-space rebuild** — an active/unacked (or client-acked) native condition used to
come back inactive after any rebuild (e.g. adding a UNS reference to an alarm tag); now restored with one event, ack preserved.
(2) **OpcUaClient and AbCip native alarms now actually reach their conditions** (both emitted ids the host never matched, so they
were silent); OpcUaClient also does ConditionRefresh and passes exact upstream severity. FOCAS native alarms remain unroutable.
(3) **#601 deploy acks are honest** — a degraded address-space apply seals as "Sealed (degraded)" (FailureReason prefixed
`Applied degraded:`) instead of clean. (4) #640 driver diagnostics on `/hosts` (S7 PDU size); #642 typed native-alarm editor in
`/raw`; #646 AbLegacy indirect addressing (`N7:[N7:0]`); FOCAS `Status/` subtree + PMC range coalescing (read-only); S7
STRING/DT unrepresentable writes now `BadOutOfRange`. Theme `.rise` upstream fix committed in scadaproj (0.4.2, not adopted
by OtOpcUa — package versions frozen there).