diff --git a/.claude/skills/sister-project-history/otopcua.md b/.claude/skills/sister-project-history/otopcua.md index 614d70a..b015883 100644 --- a/.claude/skills/sister-project-history/otopcua.md +++ b/.claude/skills/sister-project-history/otopcua.md @@ -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).