Repository navigation
OPC UA 2.0.0
See WhatsNewIn2.0.md
What's Changed
- Immutable built in types and code generation by @marcschier in #3534
- Replace all use of object in code and API with Variant by @marcschier in #3550
- [Server] Implement Client Lockout by @romanett in #3549
- Use Interfaces Introduced with 1.5.378 by @romanett in #3551
- Add possibility for Sub-CA to be revoked, Removed auto-creation of empty crl for revokecertificate call with CA by @KircMax in #3547
- fix: Subscription diagnostic nodes not deleted when disabling diagnostics by @RicoSuter in #3559
- Fix TcpTransportListener resource leak in ServerBase.StopAsync by @RicoSuter in #3561
- [Server] Refactor CoreNodeManager to be based on CustomNodeManager2 by @romanett in #3558
- Fix memory leaks in server disposal by @RicoSuter in #3560
- [Server] Add INodeManager3 with role permission validation. Improve MonitoredNode Datastructures & Locks by @romanett in #3553
- [Server] Implement AsyncCustomNodeManager by @romanett in #3563
- Move version to 1.6 and enable preview build by @marcschier in #3575
- Use InternalsVisibleTo in csproj instead of attribute in assmbly.cs to support signing. by @marcschier in #3577
- [Server] Optimize NodeState.ReadAttributes & base ReferenceNodeManager on AsyncCustomNodeManager by @romanett in #3574
- [Server] Implement smaller Performance improvements found when profiling by @romanett in #3584
- [Server] Implement event-driven RolePermissionsValidation caching in MonitoredNode2 by @romanett with @Copilot in #3583
- [Client] Fixed freezing of Subscription with sequential publishing by @AnatolyKochnev in #3565
- Refactor MonitoredItem.ValueChanged & cert validation for better perf & scalability by @romanett in #3592
- [GDS] Allow Global Discovery Server to Work with Custom Certificate Groups by @romanett with @Copilot in #3589
- fix client session error code for Endpoint does not support usertoken - BadIdentityTokenInvalid instead of rejected by @KircMax in #3591
- Add Testcase for EncodeDataValueWithoutValueProperty by @KircMax in #3579
- Fix non enumerable generic type info construction by @JMolenkamp in #3597
- [Server] Implement DiagnosticsNodeManager using AsyncCustomNodemanager by @romanett in #3595
- reuse usertokenpolicy used in connect for Reconnect / "ReactivateSession" by @KircMax in #3581
- [Server] Use HiResClock for time interval calculations to avoid system clock sensitivity by @romanett with @Copilot in #3594
- Fix numeric range equality by @JMolenkamp in #3600
- Update build configuration to latest by @marcschier in #3607
- Fix memory leak from undisposed sockets and event handler retention during server restart by @RicoSuter in #3608
- New Json decoder/encoders, array/matrix abstractions, ByteString, and more. by @marcschier in #3619
- fix(SubscriptionManager): replace List with ConcurrentDictionary for abandoned subscriptions (#3617) by @cristipogacean in #3618
- Code cleanup and modernization of test assertions to comply with project standards. by @marcschier in #3631
- Fix missing FactoryBuilder.Commit() in dictionary-based complex type loading paths by @marcschier with @Copilot in #3630
- [Server] Improve Request Queue, fix Event handling, add Tests by @romanett in #3611
- Add support for certificate based MQTT authentication by @jnsjll in #3610
- Consider WriterGroups in MQTT KeepAlive calculation by @jnsjll in #3616
- Use the cancelation token in frameworks where available by @gailjkm in #3636
- Bump NUnit3TestAdapter from 6.1.0 to 6.2.0 by @dependabot[bot] in #3634
- [Server] Introduce RequestLifetime for request handling and cancellation by @romanett in #3643
- Bump codecov/codecov-action from 5 to 6 by @dependabot[bot] in #3645
- Add unit tests for Server Subscription and Session handling by @romanett with @Copilot in #3639
- Add tests for ServerBase with multiple IP addresses on the same port & improve CI Stability by @romanett with @Copilot in #3650
- [Server] Assign TrustedApplication role automatically per OPC UA Part 3 4.9 Roles by @romanett with @Copilot in #3652
- Enhance role-based access control and add permission tests by @romanett in #3653
- Improve runtime of Client Tests via fixture-level parallelization and fix parallel test isolation by @romanett with @Copilot in #3655
- Add support to publish OPC UA applications as Native AOT by @marcschier in #3633
- Increase code coverage across solution by @marcschier in #3662
- docs: document three approaches for decoding ComplexTypes from OPC UA servers by @marcschier with @Copilot in #3664
- Support UANodeset export / import under AOT by @marcschier in #3667
- Fixed timer leaks in ChannelAsyncOperation.EndAsync by @KarenKrill in #3669
- Secure channel enhancements 2025 11 (Take 3) by @marcschier in #3665
- Enable dispose analyzers CA2000 and CA2213 and fix all issues by @marcschier in #3670
- Add structure-backed OptionSet DataType support in ComplexTypeSystem by @marcschier in #3672
- Fix source generator generated structures with optional fields by @marcschier in #3674
- Replace session state encoder with IEncodable generation using source generators by @marcschier in #3673
- Remove duplicate GDS type registration commit in server startup path by @marcschier with @Copilot in #3676
- XmlDecoder/XmlParser: throw BadDecodingError for empty/non-element enumerated arrays by @marcschier with @Copilot in #3677
- Fix boolean default should be false instead of true by @marcschier in #3679
- Update SourceGenerator dependencies resolution mechanism. by @randy-armstrong in #3680
- [Server/Client] Support RSAEncryptedSecret format and unify EncryptedSecret RSA/ECC API with legacy .NET and test compatibility by @marcschier with @Copilot in #3678
- Fix: Cannot call method within the ObjectType of the objectId by @romanett with @Copilot in #3692
- Generate type safe (method) proxies for ObjectTypes inside models by @marcschier in #3685
- [PubSub] Fix exceptions logged on graceful MqttPubSubConnection stop by @romanett with @Copilot in #3691
- Model dependency annotations using source generator + flaky test fixes by @marcschier in #3687
- Add a fluent api for server, a sample and generate node managers to use with it. by @marcschier in #3684
- Add tests to check cp is empty and is empty behave the same by @marcschier in #3703
- Add a MCP server that enables LLM/Copilot to be a OPC UA client by @marcschier in #3701
- [Client] Fixed excessive tasks spawning during session connection loss by @AnatolyKochnev in #3707
- Fix SessionReconnectHandler infinite loop when server restarts with changed endpoint configuration by @romanett with @Copilot in #3708
- fix some CTT Tests, raise SemanticChangeEvent, fix netstandard 2.1 CI by @romanett in #3700
- fix address space issues by @marcschier in #3705
- fix status code equals by @romanett in #3711
- Remove Default JSON encoding infrastructure by @marcschier in #3713
- Fix crash when processing invalid eventFilter: WhereClause does not contain operand on master branch by @mrsuciu in #3716
- Fix deadband handling for MonitoredItem and improve tests by @romanett in #3718
- Fix DataValue(int) overload resolution bug by @marcschier in #3721
- Add TriggerNodes, ArrayItemType, Enumeration, Image, References nodes, and CTT server config to UAReferenceServer by @romanett with @Copilot in #3712
- [CTT] Add alarm instances for all missing A&C alarm types in ConsoleReferenceServer by @romanett with @Copilot in #3731
- Prepare for C# 15 union types: UnionAttribute polyfill, TryGetValue rename, HasValue by @marcschier with @Copilot in #3727
- Add opc ua mit license text to nugets instead of using license expression by @marcschier in #3724
- Add back installation of sdk 8 and 9 by @marcschier in #3739
- [Server] Fix Publishing moreNotifications being set to false near MaxMessageQueue size and filter Certificate StatusCodes by @romanett in #3734
- ManagedSession, Pluggable Subscription engine, and fluent builder + DI by @marcschier in #3730
- Fix CreateInstanceOf access restrictions emission and PrioritizedChannel polyfill TryRead bug by @marcschier in #3747
- Fix PrioritizedChannel polyfill missing Count/CanCount overrides by @marcschier in #3748
- Certificate manager and ref counted certificate type by @marcschier in #3688
- Fix string Contains polyfills to honor StringComparison parameter by @markuswallen in #3751
- Fix erroneous debug.assert in SessionManager by @marcschier in #3759
- Add FileSystemClient: System.IO-style async client over OPC UA file APIs by @marcschier in #3760
- Source-generated, NativeAOT-clean fluent server API with event-source publish by @marcschier in #3765
- Add support for pushing to arbitrary certificate groups to the ServerPushConfigurationClient by @Tyrrx in #3585
- Enable nullable in Stack, Libraries (9), and Applications projects by @marcschier in #3732
- Stricter validation and error handling in GDS server & Server Method Call validation by @romanett in #3746
- Add OPC UA Server FileSystem (Part 20) and Local Discovery Server libraries by @marcschier in #3776
- Fix package id cycle: rename Opc.Ua project to Opc.Ua.Core.Types; move Security.Certificates to Stack/ by @marcschier in #3775
- Relax ExtensionObject equality to match across encoding ids by @marcschier in #3777
- [Server] Route AsyncCustomNodeManager service reads/writes through NodeState async callbacks by @romanett with @Copilot in #3782
- Add OPC UA Part 17 (Alias Names) support by @marcschier in #3779
- [Server] Invalidate permission caches in NodeManagers when ActivateSession changes session identity by @romanett with @Copilot in #3774
- Add OPC UA WoT Connectivity (OPC 10100-1) libraries and tests by @marcschier in #3786
- Add full OPC UA Part 18 (Role management) support by @marcschier in #3778
- Fix/extension object preserve encoding typeid by @gudeljuluri in #3761
- GC reduction via IPooledEncodeable activator pooling by @marcschier in #3793
- GDS Part 12 Full Compliance by @marcschier in #3795
- Source generator option to override instance modelling rules with type definition modelling rules (default opt in for stack) by @marcschier in #3799
- Add unified Microsoft.Extensions DI surface across OPC UA libraries by @marcschier in #3803
- More format and diagnostic fixes by @marcschier in #3780
- Fix TypeInfo.Construct for generic encodeable by @JMolenkamp in #3802
- Part 11 Historical Access client/server framework by @marcschier in #3797
- Reduce sync-over-async in non-obsolete server APIs + post-merge code style cleanup by @marcschier in #3806
- [Server] Make MonitoredNode aware of IAsyncNodeManager and introduce channel-based queueing under load by @romanett in #3804
- Fix TypeInfo for generic IEncodeable types by @Chris79OG in #3801
- Test project reorganization follow up by @marcschier in #3810
- [Server] Load existing users through IUserDatabase.GetUsers by @romanett with @Copilot in #3811
- [Server] Migrate all NodeManagers to AsyncCustomNodeManager by @romanett with @Copilot in #3817
- Bump version to 2.0 and land 1.5.378 to 2.0 migration guide by @marcschier in #3819
- Part 9 Alarms & Conditions: complete server + client implementation by @marcschier in #3805
- Pluggable user-identity provider model by @marcschier in #3807
- [Server]: Queue Events from the Server Node using multiple channel consumers by @romanett with @Copilot in #3823
- V2 subscription engine close gap for test and feature parity with classic engine by @marcschier in #3824
- Update Profiles.md to document v2 improvements and new security profiles by @romanett with @Copilot in #3832
- Adopt System.TimeProvider across the stack (fixes #2458) by @marcschier in #3829
- Allow application certificate lookup to use entries configured with abstract ApplicationCertificateType only as fallback candidates. by @mrsuciu in #3752
- DI (OPC 10000-100) with samples (Pump, SW Update), fluent API gap closures and model dependency implementation by @marcschier in #3808
- [Server] Implement NodeManagement service set and fix DeleteAddressSpace by @marcschier in #3839
- Fix CTT alarm configuration to reference alarms under AnalogSource and BooleanSource nodes by @romanett with @Copilot in #3830
- 2.0 Migration Analyzer and codefixer with Agent update by @marcschier in #3820
- Use request.SessionId instead of request.Session.Id in the ReportAuditCancelEvent call from CancelRequests by @mrsuciu in #3850
- Add opt-in SubscriptionRecoveryPolicy for unsolicited Good_SubscriptionTransferred (#3540) by @marcschier in #3847
- Fix CTT conformance issues #3719, #3720, #3723, #3841 by @marcschier in #3851
- Cert rotation: force renegotiate (#3562) + auto-detect on client (#3160) by @marcschier in #3849
- [Server] Part 13 Aggregates compliance fixes, full test coverage and docs by @marcschier in #3863
- [Test] Unit tests for ManagedSession revalidation loop (follow-up to #3849) by @marcschier in #3864
- dotnet format sweep (whitespace, IDE, RCS) + code-style enforcer agent fix by @marcschier in #3865
- CI: migrate to netstandard Managed DevOps Pool + per-TFM build matrix by @marcschier in #3866
- Add V2 subscription triggering (SetTriggering) with N:M support and recreate replay by @marcschier in #3854
- Generate MatrixOf properties for OneOrMoreDimension types (#3625) by @marcschier in #3868
- Fix #3768: stop emitting unimplemented Optional children on singleton instances by @marcschier in #3828
- Support unbounded monitored items per subscription via automatic partitioning by @marcschier in #3869
- CI: Fix pipeline cannot be cancelled regression and flaky tests by @marcschier in #3872
- [Client] Central channel manager: ref-counted shared channels, coalesced reconnect, IRetryBudget (#3288) by @marcschier in #3852
- Split MigrationGuide.md, add What's New in 2.0, rewrite Profiles.md and Landing page (#3745) by @marcschier in #3874
- Port session activation race condition fix from master378 to master by @romanett with @Copilot in #3846
- Fix #3546: re-enable FuzzCrashAssets and harden BinaryDecoder by @marcschier in #3884
- dotnet format sweep (whitespace + IDE + RCS) by @marcschier in #3879
- build: ship per-package NuGet READMEs by @marcschier in #3889
- Fix client user-cert selection: curve-aware match + client-enabled-policy filter by @marcschier in #3891
- [Server] Method instances should have instance children and node ids automatically (no need to replace in runtime) by @marcschier in #3887
- Env-var driven Pcap auto-capture + rename to Opc.Ua.Core.Diagnostics + Docs/Diagnostics.md by @marcschier in #3888
- [Server] Fix #3896: send full certificate chain when CA is in the issuer store by @marcschier in #3897
- Synchronize ConditionState branch collection access (port to master) by @marcschier in #3901
- Cap client operation limits to MaxArrayLength and fix flaky pcap/interval tests by @marcschier in #3910
- Encoder/decoder/session perf: JSON flush + buffer pooling + NodeId read-once + async session create + lazy loggers by @marcschier in #3899
- Fix weekly all-TFM UA.slnx build (net8/net9 + netstandard) and add Windows/Linux all-TFM CI build jobs by @marcschier in #3913
- Add Bad_MethodInvalid interop fallback for generated ObjectType proxy method calls by @marcschier in #3917
- Redesign Certificate reference-counted ownership (per-owner handle) by @marcschier in #3911
- StatusCode equality compares code bits by default; expose all-bits comparison by @marcschier with @Copilot in #3921
- [Server] Clean up node creation in ConfigurationNodeManager and DiagnosticsNodeManager by @romanett in #3833
- Adding HTTPS/WSS transports + Web API binding (Part 6 §G.3 OpenAPI Mapping), shared Kestrel host, Kestrel-TCP by @marcschier in #3880
- Full 1.05.06 compliant OPC UA Part 14 (PubSub) by @marcschier in #3892
- Honor SecurityConfiguration in GDS push UpdateCertificate validation by @marcschier with @Copilot in #3932
- Promote V2 SubscriptionManager to ISession.TryGetSubscriptionManager (#3925) by @marcschier in #3933
- Performance improvements to support > 500 concurrent server sessions plus load test by @romanett with @Copilot in #3922
- Caller-owned certificate handles + use CertificateEntry chain (fixes #3928, #3929) by @marcschier in #3930
- Fix #3937: resolve ModelDesign references to NodeSet2-defined types by @marcschier in #3940
- Server: fully asynchronous change-notification and event push path by @marcschier in #3941
- Validate issuer/CA certificate KeyUsage (keyCertSign, cRLSign) by @marcschier in #3947
- Fix three high-severity audit findings in new 2.0 pub sub/GDS code by @marcschier in #3954
- Tests: Up code coverage, improve reliability and accuracy of the existing test suite by @marcschier in #3951
- Server-side complex types via the shared native-AOT path (#1306) by @marcschier in #3955
- Add high-performance PubSub transcoders (subscriber-to-publisher) by @marcschier in #3956
- Server session scalability: admission control, retry-after signaling, and held-Publish decoupling by @marcschier in #3946
- MCP Server Stdio transport: configure all logs to go to stderr by @jjell in #3959
- Implement Apache Kafka transport for PubSub (Part 14 Annex B.2) with HA (#3942) by @marcschier in #3949
- Fix source generator dropping BaseAnalogType EURange/EngineeringUnits on instances (#3964) by @marcschier in #3966
- Fix false-positive MODELGEN010 for mixed NodeSet2 + ModelDesign [NodeManager] binding by @marcschier with @Copilot in #3968
- Expand DI / Fluent API: injectability + one-shot ergonomics (client, server, PubSub, discovery/bindings) by @marcschier in #3957
- GH Actions pipelines update, nightly + mac gating, diagnostic dumps by @marcschier in #3881
- Increase Opc.Ua.Server library unit-test coverage by @romanett in #3967
- CTT compliance (#3960) + HA/Aggregate facets (#3875) + server-side pcap capture by @marcschier in #3962
- Add integration test for server side complex types (#3961) by @marcschier in #3970
- Fix unreachable owner-identity fallback in SamplingGroup.MeetsGroupCriteria by @romanett with @Copilot in #3971
- Fix Fluent NodeManager Configure wiring: typed OnCall for imported methods + runtime value updates (#3973) by @marcschier in #3977
- OPC UA Part 4 6.6 Redundancy (server + client) with opt-in distributed high-availability by @marcschier in #3918
- Increase Core, Client and Server coverage to 80-85% and fix test-discovered defects by @marcschier in #3980
- Add Docker support for Pump Device Integration Server by @koepalex in #3987
- Stabilize Core.Security X509 user tests on macOS by preferring RSA endpoints by @romanett with @Copilot in #3983
- Fix nightly Stress Tests (Chaos TCP): transparent reconnect + robust chaos assertions by @marcschier in #3986
- Add test coverage for JSON user database and state machine availability by @marcschier in #3992
- Add runtime NodeSet-backed node managers by @marcschier in #3990
- Fix legacy password verification and JSON QualifiedName decoding by @marcschier in #3991
- CTT conformance: access rights, X509, aggregates, and matrix diagnostics by @marcschier in #3978
- Fix companion spec compliance bugs in pump sample application by @koepalex in #3999
- Dispose canceled managed session creation and expand server utility coverage by @marcschier in #3995
- Complete Part 12 ServerConfiguration and transactional PushManagement by @marcschier in #3989
- Fix transport buffer pooling, limiting, and in-process capture by @marcschier in #3994
- Migrate to source-generated logging across Stack, Libraries and Applications (#3908) by @marcschier in #4003
- PumpDeviceIntegrationServer - Register DeviceHealth node, use HasAddIn for SoftwareUpdate by @koepalex in #4008
- DO NOT SQUASH: Consolidate repository layout under src, samples, tests, tools, docs, and fuzzing by @marcschier in #4010
- Add MinimalClient - lightweight OPC UA console client with fluent API by @romanett with @Copilot in #4006
- CTT follow-up: monitored items, alarms, codecs, history, and model validation by @marcschier in #4002
- Fix generated configuration namespace resolution by @marcschier in #4019
- fix: return BadInvalidState for unlatched alarm reset by @MrAlaskan in #4020
- fix: scope Cancel request matching to the current session by @MrAlaskan in #4023
- Fix managed session failover target selection by @MrAlaskan in #4025
- fix(subscription): do not acknowledge keep-alive future sequence numbers by @MrAlaskan in #4030
- fix(subscription): fail transfer synchronization when deleting stale monitored items by @MrAlaskan in #4031
- fix(di): accept DeviceType subtypes during device discovery by @MrAlaskan in #4033
- fix: don't return continuation points on BadNoContinuationPoints by @MrAlaskan in #4022
- Fix unordered server endpoint validation by @MrAlaskan in #4029
- fix(alias): compare PortableNodeId identifiers by NodeId semantics by @MrAlaskan in #4037
- fix(di): accept FunctionalGroupType subtypes in BrowseFunctionalGroupsAsync by @MrAlaskan in #4032
- Complete partial vectored UA-TCP sends (OPC 10000-6) by @marcschier in #4028
- Protect certificate and identity secrets in MCP and durable samples (OPC 10000-4 security) by @marcschier in #4043
- Self-fence Kubernetes Lease leadership using monotonic time by @marcschier in #4042
- Fix History User Access Levels and add CTT coverage nodes by @romanett in #4026
- Fix AliasName subcategory browse continuation by @MrAlaskan in #4040
- fix(server): enforce browse continuation point limit at capacity by @MrAlaskan in #4036
- Harden PubSub replay, Action, and DTLS security (OPC 10000-14 / RFC 9147) by @marcschier in #4044
- fix(server): enforce published HistoryUpdate operation limits by @MrAlaskan in #4034
- Restore coherent durable Subscription snapshots (OPC 10000-4) by @marcschier in #4045
- Validate HTTPS client trust and CRL algorithms (OPC UA HTTPS / RFC 5280) by @marcschier in #4027
- Source generator: compiled companion NodeSet support and base-qualified NodeState emission by @marcschier in #4063
- Set ContinuationPoint (when browse is finished) to
nullinstead of empty array, align with existing 1.5.xxx behavior by @koepalex in #4057 - Default TransportQuotas in ApplicationConfiguration.ValidateAsync to prevent server-start NullReferenceException by @marcschier with @Copilot in #4055
- Change PumpDeviceIntegrationServer to use PumpType by @koepalex in #4066
- Require exact LDS certificate ApplicationUri registration (OPC 10000-4) by @marcschier in #4052
- Initialize encoder fuzz ServiceMessageContext (OPC 10000-6) by @marcschier in #4035
- Preserve nullable struct null-check semantics in UA0003 by @marcschier in #4039
- Fix #4061: invalidate component cache on runtime node add/remove by @marcschier in #4068
- Fix source-generator package delivery and preview restore (Roslyn packaging) by @marcschier in #4041
- Bump setup-dotnet to v6 and fix UDP fake-time test hang by @marcschier in #4067
- Contain DI software packages beneath their configured root (OPC 10000-100) by @marcschier in #4053
- Scope FileType handles to Sessions (OPC 10000-5) by @marcschier in #4048
- Link EuRange correctly from PumpDeviceIntegrationServer by @koepalex in #4075
- Fix MCP startup failure and respect session name by @jjell in #4077
- Register mandatory opc.tcp transport in AddOpcUa (make AddOpcTcpTransport optional) by @marcschier with @Copilot in #4074
- Enforce NodeManagement authorization and rollback (OPC 10000-4/18) by @marcschier in #4046
- Harden managed subscription recreation and reapply by @marcschier in #4065
- Use Dekaf by default for Kafka on all target frameworks by @marcschier in #4038
- Make reverse connect lifecycle fully asynchronous by @marcschier in #4059
- Prevent stale redundant client Session swaps (OPC UA redundancy) by @marcschier in #4049
- Do not fail Docker builds on cache export errors by @marcschier in #4082
- Treat zero MaxNotificationsPerPublish as unlimited (OPC 10000-4) by @marcschier in #4047
- Replace legacy EventSource providers with source-generated logging by @marcschier in #4058
- Make fluent sample security settings explicit by @marcschier in #4087
- Enforce KeyCredential authorization and ownership (OPC 10000-12 §§8.5.5-8.5.7) by @marcschier in #4054
- Improve MCP server coverage and agent usability by @marcschier with @Copilot in #4080
- Remove TraceConfiguration and related APIs by @marcschier with @Copilot in #4092
- Bump actions/setup-node from 6 to 7 by @dependabot[bot] in #4101
- Add generic xRegistry libraries (abstract registry base model) by @marcschier in #4097
- Add OPC UA ISA-95 Common Model and Job Control support by @marcschier in #4089
- Enforce ActivateSession transfer and reconnect security (OPC 10000-4 §5.7.3.1) by @marcschier in #4050
- Fix signed preview pack build (CS8002) by @marcschier in #4105
- [Server] Add live NodeManager lifecycle support by @marcschier in #4094
- Assign instance NodeIds in generated CreateOrReplace helpers by @marcschier in #4104
- Fix PubSub occurrence publishing and JSON DataValue status encoding by @marcschier in #4106
- Add simulation to PumpDeviceIntegrationServer and Event modelling by @koepalex in #4116
- Complete client subscriptions by identity instead of id by @dpse in #4114
- Harden subscription retirement after #4114 and refresh the client namespace table on model change by @marcschier in #4115
- Fix OPC UA address-space compliance in the device integration stack by @marcschier in #4117
- Use standardized OPC UA WebSocket transport profile URIs by @jpfr in #4133
- Preserve publish queue timestamp ordering by @marcschier in #4016
- Core stack: reusable file directory binder, geolocation seam and state machines by @marcschier in #4123
- Remove SourceGenerator.Foundations, ship analyzers under Roslyn-versioned folders for VS2022 and VS2026, and validate the packages by @marcschier in #4120
- Move build and test to the Azure DevOps managed pool and replace Codecov with an in-pipeline coverage gate by @marcschier in #4122
- Source generator: typed NodeSet method signatures and referenced model accessors by @marcschier in #4124
- Positioning: OPC 10000-210 RSL and 10000-211 GPOS on one geolocation provider by @marcschier in #4125
- OpenUSD: the OPC UA to OpenUSD binding, scene materialization and connector by @marcschier in #4126
- Robotics: the OPC 40010 companion SDK, its client and the robot sample by @marcschier in #4127
- Throttle client publish worker on undeliverable publish responses (+ CodeQL OOM fix) by @marcschier in #4121
- Watch datasets that appear after the PubSub application starts by @marcschier in #4164
- OpenUSD scene: replace object in the USD value model with a UsdValue union by @marcschier in #4160
- Replace the RequestManager AsyncLocal guard with an explicit operation context by @marcschier in #4163
- Make NodeId assignment during a node copy explicit by @marcschier in #4157
- Coordinate the robot cell, and make the twin show what it is actually doing by @marcschier in #4162
- Add a PumpX-2000 datasheet and render every configured pump in the OpenUSD twin by @marcschier in #4138
- Jpfr/fix wss session discovery by @jpfr in #4135
- Use application certificate validation during WSS discovery by @jpfr in #4136
- Ship the OPC Foundation license file from every package and fix the NU5033 pack failure by @marcschier in #4174
- Address WSS discovery review feedback and follow-up tests by @marcschier with @Copilot in #4178
- [WotCon] Add OPC UA WoT Connectivity 1.1 with the Types, source generation, Server and xRegistry work it builds on by @marcschier in #4128
- Split the CI matrix across both systems, split the required test gate from the advisory coverage check, and give background work an owner by @marcschier in #4158
- Add a Generators companion-spec sample and compose servers at a site level by @marcschier in #4180
- [WotCon] Track WoT Connectivity/Binding 1.1 and add projections (Section 12) by @marcschier in #4182
- Robot intent: a task-level command API with a Part 10 lifecycle by @marcschier in #4165
- Add session and subscription ids to client and server request logging by @TimJoehnk in #4189
- Remove unused MinMetadataSamplingInterval configuration option by @marcschier with @Copilot in #4194
- Pluggable cryptography and hardware-held private keys (#4190) by @marcschier in #4192
- Own the certificates the TLS validation callbacks inspect by @marcschier in #4196
- Register the PKCS#11 package in the expected package set by @marcschier in #4218
- Stop the encoder tests flooding the VSTest channel with per-test output by @marcschier in #4219
- Removal of the exposed diagnostics and node locks by @marcschier in #4188
- [MigrationAnalyzer] Generate public collection shims to unblock incremental 1.5.378 → 2.0 migration by @marcschier with @Copilot in #4214
- Update NuGet dependencies, reject empty certificate distinguished names, and fix the pre-net8.0 format and CSR paths by @marcschier in #4223
- Add IServerContext and move server startup tasks onto it by @marcschier in #4193
- Retire the IServerInternal bind mutators and freeze the bind phase by @marcschier in #4197
- Reduce ISession: type the continuation points, delete the obsolete validate overload by @marcschier in #4199
- Bound in-memory historian retention by @koepalex in #4234
- Robot intent follow-ups: multi-controller executors, spec fixes, and an MCP tool library by @marcschier in #4195
- Retire the last exposed locks: node, browser, server diagnostics and application properties by @marcschier in #4222
- Fix MCP diagnostics tool contracts and capture failures by @marcschier in #4241
- Mount OpenUSD representations with HasAddIn by @marcschier in #4239
- Fix VirtualFileSystem compiler crashes under memory pressure by @marcschier in #4246
- Add MinSupportedSamplingInterval configuration and honor it when revising sampling intervals by @marcschier in #4243
- Confine capture artifact paths to the configured base folder by @marcschier in #4247
- Align the WoT implementation with spec: type binding, removed vocabulary, Alarms and Conditions by @marcschier in #4225
- Fix off-by-one ValueRank in the NodeState source generator by @romanett in #4258
- Import NodeSet2 Views as standalone top-level nodes in the source generator by @romanett in #4259
- Emit WriteMask from the model in the source generator by @romanett in #4253
- Make UANodeSetSerializers.g.cs generation deterministic by @romanett in #4252
- Add SelectionListType write validation by @romanett in #4254
- Add MultiState Discrete write validation by @romanett in #4255
- Enable fluent subscription option configuration by @marcschier with @Copilot in #4248
- Document Opc.Ua.Core.Diagnostics trim/AOT exclusion and suppress reflection IL2075 warnings by @marcschier with @Copilot in #4249
- Generate ReferenceNodeManager address space from a NodeSet2 model by @romanett in #4220
- Pluggable symmetric cryptography, an awaitable asymmetric path, registrable security policies, and PubSub crypto offboarding (#4206, #4207, #4208, #4210) by @marcschier in #4232
- Add kitchen-sink coverage NodeSet2 with three load pipelines (#4251) by @romanett in #4272
- Harden server subscription deletion/transfer race by @romanett in #4261
- Simplify server shutdown teardown by @romanett in #4262
- Add OPC UA for Asset Administration Shell: the published OPC 30270 and v3 draft by @marcschier in #4244
- Fix the classic engine's publish pipeline: refill after keep-alive recovery, and bound every producer by @marcschier in #4274
- Fix "Build, sign, pack, publish" CI failure: register new Aas NuGet packages by @romanett with @Copilot in #4277
- Fix PollingWotSubscription: loop stops after correct number of failures when MaxAttempts is set by @romanett with @Copilot in #4281
- Fix three flaky tests (Robotics, Client, Di) by @romanett in #4289
- Fix failing test-macOS-latest-Redundancy.Samples: add HA_INSECURE=true to FastDemo environment by @romanett with @Copilot in #4280
- Fix aot-macos-latest CI: resolve "too many large addends" linker assertion on macOS ARM64 by @romanett with @Copilot in #4278
- Fix UDP multicast discovery announcements failing in restricted network environments (macOS CI) by @romanett with @Copilot in #4279
- fix(aot): remove deprecated -ld_classic linker flag causing macOS NativeAOT build crash by @romanett with @Copilot in #4291
- Fix MissingMethodException on Crdt init setters for netstandard2.1 build by @romanett in #4294
- Fix SourceGeneration tests to probe actual Opc.Ua.Server TFM output folder by @romanett in #4293
- Fix macOS unicast loopback UDP PubSub transport failures (#4285) by @romanett in #4290
- Bound reconnect cleanup and organize samples by domain by @marcschier with @Copilot in #4276
- Stabilize macOS Redundancy sample failover tests by isolating demo UDP endpoint by @romanett with @Copilot in #4292
- Expose runtime capability probes to fix TFM-skew test failures (#4282) by @romanett in #4295
- Remove HTTPS binding dependency from server packages by @marcschier with @Copilot in #4297
- Fix macOS ARM64 NativeAOT linker failure in aot-macos-latest by @romanett with @Copilot in #4298
- Fix CI failures tracked by #4299 by @marcschier in #4308
- Fix source generator MODELGEN003 diagnostic dropping message placeholders by @romanett in #4310
- Stabilize macOS Redundancy.Server CI by hardening replication wait timeouts by @romanett with @Copilot in #4309
- Converting code to new source format for configuration loading by @romanett with @Copilot in #4311
- Add trusted NuGet release workflows by @marcschier in #4312
- Fix spurious BadNoCommunication reconnect loop on sessions with steady traffic by @romanett in #4318
- Wait for HTTPS listener readiness in integration tests by @marcschier with @Copilot in #4313
- Inject ISecurityPolicyRegistry into Session and secure channel by @marcschier with @Copilot in #4314
- Fix certificate leak when rejected-store enqueue races manager disposal by @romanett in #4337
- Bind monitored items to their owning node manager instead of per-call adapter wrappers by @romanett in #4336
- Fluent: publish Configure-created nodes' references on foreign-manager nodes (Objects folder placement) by @romanett in #4331
- Allow passing an existing config XML to the hosted server DI AddServer by @romanett in #4325
- Fix macOS test host crash caused by indefinite keepAlive worker await in session teardown by @romanett with @Copilot in #4319
- Fix public IsNodeInView/IsNodeInViewAsync overloads always returning false by @romanett in #4333
- Fully support sub-state machines in the fluent state-machine builder by @romanett in #4322
- Allow passing an existing config XML to the client DI AddClient by @romanett in #4328
- OPC UA Vision: a vision-guided bin-picking demo an LLM agent can see and drive by @marcschier in #4235
- Fully support AliasNames in ConsoleReferenceServer (#4012) by @romanett in #4321
- Fix V2 managed subscription keep-alive timer clamping causing false PublishingStopped flapping by @marcschier with @Copilot in #4324
- Fix reverse connect hold time when several Servers share one listener by @romanett in #4342
- Fix structure subtyping across dependency ModelDesign boundaries by @romanett in #4335
- Fix transient PublishWorkerCount overshoot in the publish controller by @romanett in #4344
- Expose the client configuration provider and add an opt-in eager load on host start by @romanett in #4343
- Keep application certificates which do not name a CertificateType by @romanett in #4348
- Fix [DataType] generator Clone() dropping every inherited field of a derived structure by @romanett in #4354
- Fix instance TypeDefinition across dependency ModelDesign boundaries by @romanett in #4355
- Fix ManagedSession.CreateAsync returning an unconnected session when the initial connect fails by @romanett in #4350
- [Server] Decouple service-call dispatch from MasterNodeManager lifecycle coordination by @romanett in #4345
- Reduce ISubscription: internalize the publish pipeline, delete the dead members by @romanett in #4349
- Implement ServerStatusChanged on the GDS and push configuration clients by @romanett in #4351
- Fix concurrent channel reconnect certificate leaks by @marcschier in #4356
- Remove AAS projects and samples by @marcschier in #4359
- Publish migration plugin marketplace and update NuGet dependencies by @marcschier in #4358
- Fix reverse connect test timeout race by @marcschier in #4366
- Report Executable/UserExecutable for state machine causes by @romanett in #4368
- Fix Part 18 RoleSet: AddRole overwriting nodes, and Roles configured at startup never getting one by @romanett in #4367
- Fix FileSystemClient path qualification and canonical paths by @marcschier with @Copilot in #4365
- Align WoT conversion and runtime with Binding 1.1 by @marcschier in #4375
- Default null GetCertificates group to DefaultApplicationGroup by @marcschier in #4380
- Close the SupportsFilteredRetain gaps in the server implementation by @romanett in #4377
- Make CertificateStoreIdentifier a pure store description by @romanett in #4382
- Fix ManagedSession.CloseAsync blocking during reconnect attempts by @romanett with @Copilot in #4374
- Fix OPC 10000-21 onboarding interoperability by @marcschier in #4385
- Fix reverse-connect certificate leak and stale-connection retry by @romanett in #4386
- Complete CreateInstanceOf node lifecycle during registration by @marcschier in #4360
- Merge OpenUSD scene packages by @marcschier in #4384
- Enforce trust-material changes on live channels regardless of origin by @romanett in #4357
- [master] Fix maximum Publish TimeoutHint on .NET Framework by @marcschier in #4391
- Add federated OpenUSD site demo by @marcschier in #4393
- Remove the implicit fluent ReferenceServer root by @marcschier in #4394
- Fix typed instance child NodeIds during registration by @marcschier in #4395
- Split ConfigurationNodeManager by concern (#4381) by @romanett in #4406
- Allow partial endpoint filters in RoleManager by @marcschier in #4413
- Fix generated structured defaults and dependency metadata by @marcschier in #4414
- Fix GDS predefined certificate groups advertising abstract CertificateTypes by @romanett with @Copilot in #4408
- Complete WoT Binding 1.1 alignment and conformance coverage by @marcschier in #4411
- Complete fluent node manager extensibility by @marcschier in #4418
- Build a monitored item's OperationContext from the Session's effective identity by @romanett in #4420
- Throw when a server base address scheme has no registered transport binding by @marcschier with @Copilot in #4417
- Fix runtime schema resolution and direct construction by @marcschier in #4426
- Add node creation to the fluent node manager builder by @romanett in #4428
- Complete WoT binding preservation and two-pump aggregation by @marcschier in #4431
- Drop the .Common suffix from the three GDS projects by @romanett in #4438
- Make the predefined node create lifecycle cancellable by @romanett in #4437
- Make certificate leak assertions immune to concurrent test activity by @romanett in #4440
- Import NodeSet2 documents into a fluent node manager by @romanett in #4432
- Add native xRegistry events and distinct Resource versions by @marcschier in #4396
- Register HTTPS/WSS transport bindings in ConsoleReferenceServer by @romanett with @Copilot in #4436
- Complete OPC UA Part 11 Historical Access by @marcschier in #4390
- Fix startup NodeManager lifecycle and imported method arguments by @marcschier in #4427
- Make the fluent node manager's configure/seal path genuinely async by @romanett in #4442
- Mint runtime NodeIds through a single DefaultNodeIdFactory by @romanett in #4433
- Add an async iteration seam to NodeBrowser by @romanett in #4450
- Send the filtered retain trailing event with a client specific Retain = false by @romanett in #4453
- Reimplement the GDS ApplicationsNodeManager as a generated fluent node manager by @romanett in #4434
- Add per-type, resource-owning node behaviors to the fluent builder by @romanett in #4441
- Fix the recurring and permanent CI failures on master by @romanett in #4446
- Fix duplicate ServerEventIds offset 570 (HistorianEventCapture vs NamespaceMetadataRegistry) by @marcschier with @Copilot in #4455
- Harden HA address-space hydration and replica-consistent NodeIds by @marcschier in #4445
- Reduce NodeState allocations and pack scalar Variants by @marcschier in #4452
- Add shared stack APIs and fixes used by UaLens by @marcschier in #4464
- Additional fuzzing plus fixes for every defect the campaigns found by @marcschier in #4459
- Fix hosted-server DI composition gaps by @marcschier in #4456
- Adopt the fluent builder's node-creation surface in the remaining hand-rolled node managers by @romanett in #4460
- Fix alias startup ordering and retained translation fallbacks by @marcschier in #4469
- Fix source generator defects from the Client/Types/SourceGeneration audit by @romanett in #4473
- Fix the Opc.Ua.Client defects reported by the client stack audit by @romanett in #4471
- Fix the Opc.Ua.Core defects from the server/core audit by @romanett in #4475
- Fix the Opc.Ua.Types defects found by the read-only audit by @romanett in #4474
- Revise event monitored item queueSize 0/1 per Part 4 §7.21 (fixes CTT Auditing Connections) by @romanett in #4480
- Fix Part 13 aggregate status and FindAlias validation defects found by CTT runs by @romanett in #4478
- Fix Like filtering (GDS queries, ContentFilter), QueryServers paging and FindApplications found by the CTT GDS run by @romanett in #4481
- Echo the RequestHandle in ServiceFaults for requests that cannot be decoded by @romanett in #4488
- Fix ActivateSession deadlock on expired sessions and keep-alive after durable subscription transfer found by CTT Session/Subscription runs by @romanett in #4487
- Fix AddNodes scaling and OpenSecureChannel revocation errors found by CTT Monitored Item, Node Management and security runs by @romanett in #4486
- Preserve non-child hierarchical references during NodeSet import by @marcschier in #4491
- Fix sample A&C refresh and alarm timing found by slow CTT Alarms and Conditions runs by @romanett in #4482
- Release managed channel lease refcount synchronously on Dispose (fixes flaky failover lease test) by @romanett in #4489
- Close CTT skips in the reference server sample address space, diagnostics EnabledFlag and project settings by @romanett in #4485
- Fix server/core validation, lifecycle and protocol regressions by @marcschier in #4477
- Fix telemetry component assembly identification by @marcschier with @Copilot in #4490
- Update dependencies and re-enable macOS NativeAOT by @marcschier in #4493
- Fix flaky GeneratorOpenUsdE2eTests timeout on net48 CI by @marcschier in #4501
- Fix connector migration type handling and transfer recovery by @cristipogacean in #4496
- Recover transferred notifications immediately after a subscription transfer by @marcschier with @Copilot in #4500
- Support guid/opaque nodeids in NodeSet import by @marcschier with @Copilot in #4507
- Fix AI model version and inference argument handling by @marcschier in #4512
- Fix audit findings and review regressions across the OPC UA stack by @marcschier in #4503
- Only use GitHub action for CI and nightly, establish release-branch-only package publication by @marcschier in #4513
- Allow GC to collect the dynamic assembly of complex types by @mareklinka in #4520
- Fix CI env-file tearing and capture Linux native crash dumps by @romanett in #4517
- Move full-scope nightly schedule to GitHub Actions by @marcschier in #4524
- Add support for adding input/output arguments to methods using fluent api by @Flatscha in #4519
- Update NuGet dependencies by @marcschier in #4536
- Fix incomplete-message buffering and channel cleanup by @marcschier in #4522
- Raise ChannelLifetime for the CTT reference server and record the full CTT run of the merged CTT PRs by @romanett in #4502
- Run the fluent configure pipeline in FluentNodeManagerBase (#4537) by @romanett in #4538
- Replay the fuzz crash corpus from the fuzz-corpus orphan branch by @romanett in #4539
- Fix JSON encoding fidelity issues found by fuzz crash replay and align with Part 6 by @romanett in #4540
- Restrict private key permissions on the netstandard2.1 build by @romanett in #4542
- Fail oldest Publish request when the queue limit is exceeded by @romanett in #4543
- Keep unsent publish messages ready until drained by @cristipogacean in https://github.com/OPCFoundation/UA-.NETStandard/pull/4548
- Preserve partial runtime type loads and complete imported metadata by @cristipogacean in https://github.com/OPCFoundation/UA-.NETStandard/pull/4547
- Normalize transport connection failures at the client channel boundary by @cristipogacean in https://github.com/OPCFoundation/UA-.NETStandard/pull/4549
- Resolve the open CTT findings: aggregate fixes, de-DE ApplicationName and CTT configuration by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4545
- Fix instance-scoped certificate store resolution and consumers by @cristipogacean in https://github.com/OPCFoundation/UA-.NETStandard/pull/4546
- Preserve node initialization and copied child ownership by @cristipogacean in https://github.com/OPCFoundation/UA-.NETStandard/pull/4544
- Harden recovery, concurrency, and resource lifetimes across the OPC UA stack by @marcschier in https://github.com/OPCFoundation/UA-.NETStandard/pull/4516
- Add configurable server resource isolation by @marcschier in https://github.com/OPCFoundation/UA-.NETStandard/pull/4541
- Honor cancellation during TCP endpoint connection by @marcschier with @Copilot in https://github.com/OPCFoundation/UA-.NETStandard/pull/4553
- Evaluate ContentFilter elements with null operands to NULL per OPC 10000-4 §7.7.3 by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4564
- Release the discovery refusal fixture port before connecting by @marcschier in https://github.com/OPCFoundation/UA-.NETStandard/pull/4559
- Documentation updates (part 1) by @marcschier in https://github.com/OPCFoundation/UA-.NETStandard/pull/4555
- Fix source generator audit findings; conform structure-field matrices and type metadata to OPC UA 1.05 by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4569
- Fix Server and GDS audit findings, review findings and spec-conformance gaps by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4571
- Remove the Azure Pipelines CI and publishing definitions from master by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4575
- Allow release.yml to promote release-line previews to nuget.org by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4574
- Correct Basic256Sha256 security-level ranking by @marcschier with @Copilot in https://github.com/OPCFoundation/UA-.NETStandard/pull/4568
- Fix two test races: reverse connect reload commit and TCP chunk release by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4582
- Keep SubscriptionTest sessions alive across CI runner stalls by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4581
- Fix Opc.Ua.Client audit findings (security fallback, reconnect, subscriptions, redundancy, browse, files, WebApi) by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4572
- Fix Core/Types audit findings and conform them to the OPC UA spec by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4573
- Source generator, ISA-95 Job Control and DI changes for companion SDKs built on referenced models by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4577
- Fix GDS FindApplications authorization and CSR key type checks (#4587, #4588) by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4591
- Keep GDS roles on hosted logins, add GDS user token policies and startup tasks by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4590
- Document the nuget.org package changes: no .Debug packages, Opc.Ua.Symbols discontinued by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4589
- Return Bad_IndexRangeNoData for writes to a range beyond the target (CTT regression from #4573) by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4593
- Machinery: the OPC 40001 companion SDK with Jobs, Result Transfer, Process Values and Energy by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4578
- Let pushes to protected branches finish their required checks by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4594
- Set release/2.0 to 2.0.0-preview.6 by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4595
- Fix flaky CancelledRecoveryCanBeReplacedWithoutSuppressingLaterKeepAlive test by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4596
- Pumps: the OPC 40223 companion SDK by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4579
- Fix flaky BuilderDisposesOwnedHttpProviderAndChannelManagerAsync on net48 by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4597
- Scales: the OPC 40200 companion SDK with the OPC 30050 PackML model by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4580
- Harden encoders/decoders against untrusted input and align them with Part 6 / Part 14 by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4599
- Include subtypes of AliasNameCategoryType in AliasNameClient.EnumerateSubCategoriesAsync by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4611
- Scales and Machinery: advertise only the facets and units the server satisfies by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4615
- Robotics: resolve client reads with namespaces and ParameterSet; call ResetToProgramStart on the ReadySubstateMachine by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4609
- Report JobOrderList and JobOrderResponseList changes to monitored items by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4607
- Kubernetes readiness: create the listener on Start and move the default probe port off 8080 (breaking default) by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4613
- Trust leaf-only certificate chains from configured issuers by @marcschier with @Copilot in https://github.com/OPCFoundation/UA-.NETStandard/pull/4604
- Fix transport channel and encryption audit findings by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4626
- Remove netstandard2.1 and net472 target frameworks by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4624
- Fix Medium encoder/decoder defects found by the second codec review by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4625
- Fix flaky DurableSubscriptionSnapshotSurvivesRetransmissionQueueRecycling by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4634
- Tag promoted NuGet package releases by @marcschier with @Copilot in https://github.com/OPCFoundation/UA-.NETStandard/pull/4605
- Add 1.5.378 <-> 2.0 interop tests; return BadAttributeIdInvalid for unset optional security attributes by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4630
- Fail sends racing PipeByteTransport.Close with BadConnectionClosed by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4643
- Machinery client: return the NodeId of each metering point measurement by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4642
- Fix server session defects found by a spec-checked review of CreateSession, ActivateSession, session lifecycle and continuation points by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4632
- OneFuzz validator: accept drop files reported through resolved links by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4640
- Server subscriptions: fix spec defects in Subscription/MonitoredItem handling found by audit by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4629
- Pumps and Scales: roll back a pump or scale whose registration fails by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4636
- DI: roll back a device whose registration fails by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4638
- Robotics client: expose value NodeIds, operation states and the missing identification and motor fields by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4619
- docs: add Machinery, Pumps and Scales to What's New in 2.0 by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4652
- Client: never select an OpenAPI endpoint in SelectEndpoint, and keep a closed Session from sending requests without authenticationToken by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4646
- Certificate validation: issuer store completes the chain but is no trust anchor (fix #4604 CTT regression) by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4653
- Aggregates: fix remaining CTT aggregate server defects and seed Bad data for the CTT by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4655
- Server: public CreateAlarm fluent overload, and conformance units that follow their contributors by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4650
- Server diagnostics: let every session browse its own subscriptions in SubscriptionDiagnosticsArray by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4664
- Fix ComplexTypes interop and TCP channel dispose CI flakes by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4663
- Server view parameter status codes; client transfer fallback when GetMonitoredItems is unavailable by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4654
- GDS: implement the AliasName Server facet (OPC 10000-17 Annex C) by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4668
- Detect resource and limit abuse in the encoder/decoder fuzz harness by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4666
- WebApiClient: report HTTP failures as StatusCodes and accept gzip responses by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4648
- DI: wire the PrepareForUpdate and Installation methods per spec and advertise only the facets that are met by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4617
- Robotics client: fill the engineering units and ranges of the axis values and the load mass, and the gear ratio by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4661
- Machinery client: enumerate each machine, component and process value once by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4672
- Asset Management Basics: the OPC 10000-110 companion SDK by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4662
- CTT: keep GeneratesEvent off Object instances and Views off non-hierarchical references; classify Deadband Err-006 as CTT defect by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4667
- Kubernetes readiness tests: give each test a port of its own (fixes the Windows "conflicts with an existing registration" flake) by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4673
- Run the interop tests against six foreign OPC UA stacks and extend feature coverage by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4644
- WebApi: enforce AddWebApi*Auth on the HTTPS listener's own host (REST routes were served unauthenticated) by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4674
- OPC UA Part 3 compliance: permissions, Write semantics, NodeManagement, NodeSet DataTypes, locales by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4675
- Server: session-less service invocation (OPC 10000-4 §6.3) with AddSessionlessInvocation by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4659
- WebApi: serve a generated OpenAPI document of the REST binding (opt-in) and map the session-less service set by @biancode in https://github.com/OPCFoundation/UA-.NETStandard/pull/4657
- Merge Master to Release/2.0 by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4676
- Set release/2.0 to stable 2.0.0 by @romanett with @Copilot in https://github.com/OPCFoundation/UA-.NETStandard/pull/4677
- Images CI: publish samples once natively and stop compiling under QEMU by @romanett with @Copilot in https://github.com/OPCFoundation/UA-.NETStandard/pull/4679
- Advance master to 2.0.1-preview by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4682
- Set release/2.0 to stable 2.0.0 by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4681
- Make Bad_CertificateChainIncomplete unsuppressible; add UpdateCertificate renewal regression tests by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4683
- Treat code analysis (CA) warnings as errors and fix all surfaced analyzer warnings by @romanett with @Copilot in https://github.com/OPCFoundation/UA-.NETStandard/pull/4680
- Push Model compliance: UpdateCertificate issuer check, TrustList audit events, NoConfiguration state, DefaultHttpsGroup by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4684
- Stop versioning DI and ISA95 packages as preview by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4686
- Merge master into release/2.0 by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4687
- Exempt unremovable preview.g versions from the preview ordering gate by @romanett in https://github.com/OPCFoundation/UA-.NETStandard/pull/4691
New Contributors
- @JMolenkamp made their first contribution in #3597
- @Tyrrx made their first contribution in #3585
- @gudeljuluri made their first contribution in #3761
- @Chris79OG made their first contribution in #3801
- @jjell made their first contribution in #3959
- @MrAlaskan made their first contribution in #4020
- @dpse made their first contribution in #4114
- @jpfr made their first contribution in #4133
- @mareklinka made their first contribution in #4520
- @Flatscha made their first contribution in #4519
Full Changelog: 1.5.378.182...2.0.0