diff --git a/.claude/skills/sister-project-history/otopcua.md b/.claude/skills/sister-project-history/otopcua.md index 034e154..0b1a994 100644 --- a/.claude/skills/sister-project-history/otopcua.md +++ b/.claude/skills/sister-project-history/otopcua.md @@ -136,3 +136,13 @@ AddRoute of the dev Mac (`oee-tagdump-mac`, `10.181.206.245.1.1`) on the two tes authored ReadWrite); whole-UDT writes refused by decision; libplctag writes now refuse a width-mismatched type (`BadTypeMismatch`) instead of writing stale bytes. ScadaBridge-visible: only the libplctag mistyped-write refusal (was a silent Good). Follow-up #658 (OpcUaClient first-sight inactive+acked). +- **2026-10-09 hw5 batch (#661 #660 #657 closed; #592 progress; pushed OtOpcUa `ea220363`).** (1) **#657 / #658 — OpcUaClient + alarm restatement:** new `AlarmTransitionKind.InactiveUnacknowledged` (atomic inactive+unacked; rows only for what changed) + replaces Raise/Retrigger+Clear; first sight of inactive+acked is a flagged Clear+Acknowledge instead of `Unspecified`. + **ScadaBridge-visible:** after an OpcUaClient driver respawn there is no Active flicker and no duplicate + "Activated"+"Cleared" `/alerts` rows for inactive+unacked conditions; a retained-Active condition that upstream cleared and + acked now clears. Live-gated on docker-dev. Residual: a cold-host restart still writes one pair per upstream inactive+unacked + condition. New bug #662: an OpcUaClient alarm feed is not restored by a non-respawning deploy or reconcile. (2) **#660** — + AbLegacy Test Connect normalises the probe address per family (PLC-5 octal). (3) **#661** — flaky MTConnect test fixed. + (4) **#592** — Z-35162 real-hardware: #566 (a Logix drops idle TCP ≈16 s, driver reconnects), native STRING write and + array-element write (`_SEQ_EP[31]`) proven, restored. No wire-contract change.