diff --git a/.claude/skills/sister-project-history/otopcua.md b/.claude/skills/sister-project-history/otopcua.md index a810333..3b69673 100644 --- a/.claude/skills/sister-project-history/otopcua.md +++ b/.claude/skills/sister-project-history/otopcua.md @@ -408,3 +408,5 @@ AddRoute of the dev Mac (`oee-tagdump-mac`, `10.181.206.245.1.1`) on the two tes - **Final local verification (SDK2 candidate):** 18,489 executed across63 TRX; 18,478 passed,11 known baseline failures (#796/#798),635 existing skipped results. Test exit1/guard0 preserved. A baseline Runtime test race was causally repaired on master `52d1373e` (#805 closed); original browser different-port NAT limitation was independently reproduced on SDK1.5 (#806 open), and corrected direct fixtures pass5+5. Canonical candidate saturation completed384+1cycles/96restarts within1,425.242seconds with zero generated-factory events/newSDKassemblyloads/lostevents in both fixed windows, but original coldRSS rejection/exit1 remains. The original canonical adapter has only partial diagnostic proof and unsupported ownership/process-memory parity; no accepted RSS denominator. Astra source/security review is closed, release HOLD; #799/#800/#801/ScadaBridge#121 remain open. Latest runbook/evidence and draftPR#802 explicitly record these limits. No SDK2 master merge or deployment. - **2026-11-10 SDK1 terminal server ownership repaired independently on master `efb9197a` (lmxopcua#807 closed).** Investigation for #799 found the old host stopped the application but omitted the SDK server's terminal Dispose. Exact original1.5.378.182 publications show five server-graph weak targets survive normal stop; one separately gated public Dispose releases all five (timers7→2), without rewriting the original failed diagnostic. Master now guarantees terminal server disposal, elects one cleanup owner and makes repeated/concurrent Dispose callers await shared completion; new startup after disposal is rejected. Five causal REDs became five GREENs; owning server suite1,032passed/0failed/1existing skip and whole solution Release0warnings/errors. Astra verified source, raw TRX, hashes and security/same-PKI two-boot checks. Consumer impact is bounded cleanup on in-process host replacement; namespaces, NodeIds, API-key/ACL behavior and certificate identity are unchanged. This does not claim general concurrent async Start/Dispose support. Frozen83ed880e publications and aggregate oracles remain unchanged; no new RSS denominator or #799/G4 acceptance was adopted. SDK2 remains separate on draftPR#802 and under release HOLD; this master repair does not merge or deploy SDK2. Candidate shared-completion/pre-adoption ownership refinements and native import attribution remain under separate review. + +- **2026-11-10 OPC UA SDK2 #799 follow-up (draft PR #802; release HOLD).** The Astra-reviewed, tracked Linux ARM64 diagnostic at `b18f9723` (.NET 10.0.14, OPC UA SDK 2.0.1, HistorianGateway Client/Contracts 1.0.0) completed 7,201.014 seconds, 1,937 cycles and 484 restarts. No cold cap tripped; peak quiescent RSS was 338.99 MiB, 4.20 MiB below the unchanged cap, with late RSS fit +0.194 MiB/hour and zero quiescent PKI descriptors. Shutdown/container cleanup verified. This one run has `acceptance=false` and preserves the prior cold failures. Matched performance and the macOS native import retention remain unresolved; Windows/live gates remain separate. No SDK2 master merge, deployment, or change to ScadaBridge's consumer contract.