WIP: Upgrade OPC UA SDK to 2.0.1 preserving application contracts #802

Draft
dohertj2 wants to merge 110 commits from codex/opcua-sdk-2 into master
Owner

SDK 2 changes the value, identity, certificate and continuation APIs used by this application. This migrates the server, Shared client, driver and browser to exact SDK 2.0.1 while preserving existing application results and authorization. The 37 legacy aggregate factories are checked against 6,144 independent original-SDK vectors.

Draft — release HOLD; do not merge. Implements #782. Plan, complete execution evidence and rollout/rollback runbook are checked in under docs/plans/2026-11-10-opcua-sdk-2-*. Latest evidence: ed60970f.

Validation:

  • Integrated Release solution build: zero warnings/errors. Final CI4: 18,478 passed, 11 failed, 635 existing skips, 18,489 executed across 63 TRX. Test exit 1 and execution guard 0 retained. Exact remaining failures are the independently reproduced ten PercentGood cases (#796) and one ScriptWorker timing assertion (#798); no additional failure classes or new skips.
  • Server wire 187; server units 1,115 (+1 existing skip); Shared 324; final security 17/17. All 6,144 aggregate vectors pass directly and through the booted manager. Old/new separate-process Shared plus actual driver/CLI compatibility 62/62.
  • Production client/driver/live-reinitialize/browser lifecycle: 7,200.984 seconds, 5,420 cycles, 43,360 verified manager disposals. Zero weak product survivors or open PKI descriptors across 543 samples. This is client lifecycle evidence, not the server RSS gate.
  • SQL Server 195/195 and QuestDB 233 passed/1 existing opt-in skip on each SDK. Fresh HG 1.0 graph: all four self-contained Linux/Windows Host/CLI publishes; actual Linux Host twice-start/stop preserves PKI and passes six strict HMAC/peer cases plus both CLI reads.
  • Independent HG Client/Contracts 1.0.0 update landed on master 230cef4e and is merged here; historiangw#131 closed after published-package verification and three real TLS/h2c wire tests. Baseline test-ordering repair landed separately on master 52d1373e (#805 closed); both SDK1.5/SDK2 Runtime suites pass 1,002 tests.

Required holds:

  • #799 / G4 remains failed. Canonical cold RSS exceeds the unchanged cycle-3 +128 MiB cap on macOS and Linux. Fixed candidate saturation completed 384 cycles/96 restarts plus settling inside 1,800 seconds with zero factory JIT/load, new SDK assembly loads or lost events in both declared windows. It retained the cold failure and exit 1; allocation tracking adds overhead. This is no acceptance baseline or two-hour server pass. The original canonical adapter has partial diagnostic proof and unsupported ownership/process-memory parity; it supplies no approved RSS denominator. macOS native certificate-object retention remains unresolved.
  • #800: actual Windows runtime/service/reused-PKI evidence pending an approved operator channel.
  • #801 and ScadaBridge#121: live AVEVA/secure consumer/paired-cluster gates pending. Actual unchanged ScadaBridge passes 18 None/API-key cases; secure setup fails equally on both versions because its own certificate is unconfigured.
  • #797 and #806 retain preexisting opaque scripted-alarm narrow-grant and browser NAT limitations; neither is an SDK2 regression or an approved workaround.

Astra independently reviewed source, negative and positive security cases, artifact hashes, raw TRX, lifecycle and diagnostic receipts. No new must-fix migration source/security finding remains; no release approval was given. No resource/oracle/skip threshold was weakened. #782 stays open. SDK2 is not merged to master or deployed.

SDK 2 changes the value, identity, certificate and continuation APIs used by this application. This migrates the server, Shared client, driver and browser to exact SDK 2.0.1 while preserving existing application results and authorization. The 37 legacy aggregate factories are checked against 6,144 independent original-SDK vectors. **Draft — release HOLD; do not merge.** Implements #782. Plan, complete execution evidence and rollout/rollback runbook are checked in under `docs/plans/2026-11-10-opcua-sdk-2-*`. Latest evidence: ed60970f. Validation: - Integrated Release solution build: zero warnings/errors. Final CI4: **18,478 passed, 11 failed, 635 existing skips**, 18,489 executed across 63 TRX. Test exit 1 and execution guard 0 retained. Exact remaining failures are the independently reproduced ten PercentGood cases (#796) and one ScriptWorker timing assertion (#798); no additional failure classes or new skips. - Server wire 187; server units 1,115 (+1 existing skip); Shared 324; final security 17/17. All 6,144 aggregate vectors pass directly and through the booted manager. Old/new separate-process Shared plus actual driver/CLI compatibility 62/62. - Production client/driver/live-reinitialize/browser lifecycle: **7,200.984 seconds, 5,420 cycles, 43,360 verified manager disposals**. Zero weak product survivors or open PKI descriptors across 543 samples. This is client lifecycle evidence, not the server RSS gate. - SQL Server 195/195 and QuestDB 233 passed/1 existing opt-in skip on each SDK. Fresh HG 1.0 graph: all four self-contained Linux/Windows Host/CLI publishes; actual Linux Host twice-start/stop preserves PKI and passes six strict HMAC/peer cases plus both CLI reads. - Independent HG Client/Contracts 1.0.0 update landed on master 230cef4e and is merged here; historiangw#131 closed after published-package verification and three real TLS/h2c wire tests. Baseline test-ordering repair landed separately on master 52d1373e (#805 closed); both SDK1.5/SDK2 Runtime suites pass 1,002 tests. Required holds: - **#799 / G4 remains failed.** Canonical cold RSS exceeds the unchanged cycle-3 +128 MiB cap on macOS and Linux. Fixed candidate saturation completed 384 cycles/96 restarts plus settling inside 1,800 seconds with zero factory JIT/load, new SDK assembly loads or lost events in both declared windows. It retained the cold failure and exit 1; allocation tracking adds overhead. This is no acceptance baseline or two-hour server pass. The original canonical adapter has partial diagnostic proof and unsupported ownership/process-memory parity; it supplies no approved RSS denominator. macOS native certificate-object retention remains unresolved. - #800: actual Windows runtime/service/reused-PKI evidence pending an approved operator channel. - #801 and ScadaBridge#121: live AVEVA/secure consumer/paired-cluster gates pending. Actual unchanged ScadaBridge passes 18 None/API-key cases; secure setup fails equally on both versions because its own certificate is unconfigured. - #797 and #806 retain preexisting opaque scripted-alarm narrow-grant and browser NAT limitations; neither is an SDK2 regression or an approved workaround. Astra independently reviewed source, negative and positive security cases, artifact hashes, raw TRX, lifecycle and diagnostic receipts. **No new must-fix migration source/security finding remains; no release approval was given.** No resource/oracle/skip threshold was weakened. #782 stays open. SDK2 is not merged to master or deployed.
dohertj2 added 52 commits 2026-11-10 13:30:51 -05:00
docs: retain final CI failures and Linux RSS gate evidence
v2-ci / unit-tests (pull_request) Waiting to run
b218321bda
dohertj2 added 5 commits 2026-11-10 13:33:05 -05:00
dohertj2 added 2 commits 2026-11-10 14:03:41 -05:00
dohertj2 added 2 commits 2026-11-10 14:23:00 -05:00
dohertj2 added 9 commits 2026-11-10 14:54:42 -05:00
dohertj2 added 3 commits 2026-11-10 15:07:14 -05:00
dohertj2 added 3 commits 2026-11-10 15:47:02 -05:00
dohertj2 added 1 commit 2026-11-10 16:05:18 -05:00
test: record final integrated CI baseline-only failures
v2-ci / unit-tests (pull_request) Has been cancelled
331cde68a7
dohertj2 added 2 commits 2026-11-10 16:09:13 -05:00
dohertj2 added 7 commits 2026-11-10 16:42:09 -05:00
dohertj2 added 9 commits 2026-11-10 17:35:59 -05:00
dohertj2 added 2 commits 2026-11-10 17:42:44 -05:00
dohertj2 added 9 commits 2026-11-10 18:08:12 -05:00
dohertj2 added 3 commits 2026-11-10 18:19:22 -05:00
dohertj2 added 1 commit 2026-11-10 18:26:27 -05:00
docs: retain verified Linux rehearsal and diagnostic gate
v2-ci / unit-tests (pull_request) Blocked by required conditions
1e4b017f6e
Some checks are pending
v2-ci / unit-tests (pull_request) Blocked by required conditions
This pull request is marked as a work in progress.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin codex/opcua-sdk-2:codex/opcua-sdk-2
git checkout codex/opcua-sdk-2
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#802