Driver.Cli.Common-007 + Driver.Cli.Common-008 resolution.
Driver.Cli.Common-007 (High, Correctness):
0x80550000 is the canonical OPC UA spec value for BadSecurityPolicyRejected,
not BadDeviceFailure. The correct spec value for BadDeviceFailure is
0x808B0000 (verified against OPC Foundation Opc.Ua.StatusCodes;
corroborated locally by Driver.Galaxy.Runtime.StatusCodeMap and both
Wonderware historian quality mappers which all hand-pin the correct
value).
The bug was duplicated across six driver modules:
- FocasStatusMapper.BadDeviceFailure
- AbCipStatusMapper.BadDeviceFailure
- AbLegacyStatusMapper.BadDeviceFailure
- TwinCATStatusMapper.BadDeviceFailure
- ModbusDriver.StatusBadDeviceFailure
- S7Driver.StatusBadDeviceFailure
Plus the SnapshotFormatter shortlist that named 0x80550000 as
BadDeviceFailure, and three downstream Modbus tests that asserted
against the wrong value (so CI was blind).
This commit fixes all six native-mapper constants, the formatter
shortlist, and the three Modbus tests in one pass. Added a regression
guard to FormatStatus_does_not_apply_pre_fix_wrong_names that pins
0x80550000 never renders as BadDeviceFailure (mirroring the existing
-001 wrong-name guards).
Behavior change: OPC UA clients consuming the native drivers now see
the canonical BadDeviceFailure (0x808B0000) on device-fault paths
instead of the misnamed BadSecurityPolicyRejected (0x80550000). Wire-
level status semantics now match operator-facing CLI labels.
Driver.Cli.Common-008 (Low, Testing):
Deleted the redundant FormatStatus_names_native_driver_emitted_codes
Theory — its five InlineData rows were already covered by the
well-known Theory in the same commit (5a9c459), and used a weaker
ShouldContain vs the well-known Theory's ShouldBe (exact match).
Verification:
- Driver.Cli.Common.Tests: 43/43 pass (was 48 after the -008 deletion).
- Driver.Modbus.Tests: 263/263 pass.
- Driver.AbCip.Tests: 262/262.
- Driver.AbLegacy.Tests: 157/157.
- Driver.FOCAS.Tests: 178/178.
- Driver.S7.Tests: 112/112.
- Driver.TwinCAT.Tests: 131/131.
Total: 1146 tests across the affected modules, all green.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Code Reviews
Cross-module code review index for the OtOpcUa server codebase (lmxopcua). The review process is defined in ../REVIEW-PROCESS.md.
Each module's findings.md is the source of truth; this file is generated from them by regen-readme.py and must not be edited by hand.
Module status
| Module | Reviewer | Date | Commit | Status | Open | Total |
|---|---|---|---|---|---|---|
| Admin | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 13 |
| Analyzers | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 7 |
| Client.CLI | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 10 |
| Client.Shared | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 11 |
| Client.UI | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 11 |
| Configuration | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 11 |
| Core | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 12 |
| Core.Abstractions | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 8 |
| Core.AlarmHistorian | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 11 |
| Core.ScriptedAlarms | Claude Code | 2026-05-23 | a9be809 |
Reviewed | 1 | 13 |
| Core.Scripting | Claude Code | 2026-05-23 | a9be809 |
Reviewed | 5 | 16 |
| Core.VirtualTags | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 13 |
| Driver.AbCip | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 15 |
| Driver.AbCip.Cli | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 8 |
| Driver.AbLegacy | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 13 |
| Driver.AbLegacy.Cli | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 7 |
| Driver.Cli.Common | Claude Code | 2026-05-23 | a9be809 |
Reviewed | 0 | 8 |
| Driver.FOCAS | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 12 |
| Driver.FOCAS.Cli | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 5 |
| Driver.Galaxy | Claude Code | 2026-05-23 | a9be809 |
Reviewed | 4 | 18 |
| Driver.Historian.Wonderware | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 12 |
| Driver.Historian.Wonderware.Client | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 10 |
| Driver.Modbus | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 12 |
| Driver.Modbus.Addressing | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 9 |
| Driver.Modbus.Cli | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 8 |
| Driver.OpcUaClient | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 15 |
| Driver.S7 | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 14 |
| Driver.S7.Cli | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 7 |
| Driver.TwinCAT | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 16 |
| Driver.TwinCAT.Cli | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 7 |
| Server | Claude Code | 2026-05-22 | 76d35d1 |
Reviewed | 0 | 15 |
Pending findings
Findings with status Open or In Progress, ordered by severity.
| ID | Severity | Category | Location | Description |
|---|---|---|---|---|
| Core.Scripting-012 | High | Security | ForbiddenTypeAnalyzer.cs:60-76, ScriptSandbox.cs:96-126 |
The Core.Scripting-008 rewrite broadened the BCL references list from a narrow allow-list (System.Private.CoreLib + System.Linq only) to the full TRUSTED_PLATFORM_ASSEMBLIES set filtered to System.* + netstandard + `Microsoft.Win… |
| Core.Scripting-013 | Medium | Security | ScriptEvaluator.cs:202-225 (BuildWrapperSource) |
The synthesized wrapper pastes the user's source verbatim between { and } braces inside a static method body, with a #line 1 directive and no escaping. The legacy CSharpScript.CreateDelegate path was robust to this because Roslyn's… |
| Core.Scripting-014 | Medium | Concurrency & thread safety | CompiledScriptCache.cs:91-103 (Clear) |
Clear() snapshots _cache.Keys.ToArray() then iterates, calling TryRemove(key, out var lazy) on each — the key-only overload, not the value-scoped one used in GetOrCompile's catch block. Between the snapshot and a given TryRemove,… |
| Core.Scripting-016 | Medium | Performance & resource management | src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/VirtualTagEngine.cs:74-117, src/Core/ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms/ScriptedAlarmEngine.cs:139-182 |
The Core.Scripting-008 resolution introduced ScriptEvaluator.IDisposable + CompiledScriptCache.Clear() that disposes each materialised evaluator before dropping its dictionary entry, so per-publish ALC accretion is no longer process-li… |
| Driver.Galaxy-015 | Medium | Security | libs/MxGateway.Client.dll, libs/MxGateway.Contracts.dll, libs/README.md |
Commit 994997b checks in two binary DLLs (MxGateway.Client.dll, 99 840 bytes; MxGateway.Contracts.dll, 489 984 bytes) under src/Drivers/.../Driver.Galaxy/libs/ and references them via <Reference HintPath="…" />. These are the onl… |
| Driver.Galaxy-016 | Medium | Performance & resource management | ZB.MOM.WW.OtOpcUa.Driver.Galaxy.csproj:43-47, libs/README.md:32-37 |
The five new PackageReference versions declared in the csproj (Google.Protobuf 3.34.1, Grpc.Core.Api 2.76.0, Grpc.Net.Client 2.71.0, Microsoft.Extensions.Logging.Abstractions 10.0.0, Polly 8.5.2) do not all match what the vendo… |
| Core.ScriptedAlarms-013 | Low | Documentation & comments | ScriptedAlarmEngine.cs:66-81 |
The new internal test accessors TryGetScratchReadCacheForTest and TryGetScratchContextForTest (introduced by the Core.ScriptedAlarms-009 resolution at 0001cdd) return the live per-alarm scratch — the same `Dictionary<string, DataVa… |
| Core.Scripting-015 | Low | Correctness & logic bugs | ScriptEvaluator.cs:234-270 (ToCSharpTypeName) |
ToCSharpTypeName is documented to handle nested types (Outer+Inner → Outer.Inner) via Replace('+', '.') for the non-generic path (line 269) but the generic path (line 263-266) constructs the name from def.FullName! then takes a s… |
| Driver.Galaxy-017 | Low | Design-document adherence | src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/ (no source change), gateway proto contract |
The vendored MxGateway.Contracts.dll only carries the OLD MxGateway.Contracts.Proto[.Galaxy] namespace (PE-namespace dump confirms — MxGateway.Client, MxGateway.Contracts, MxGateway.Contracts.Proto, `MxGateway.Contracts.Proto.Gal… |
| Driver.Galaxy-018 | Low | Documentation & comments | libs/README.md:32-37, ZB.MOM.WW.OtOpcUa.Driver.Galaxy.csproj:40-47 |
Several small documentation issues in the vendoring artefacts: 1. libs/README.md says "Versions match what the sibling repo's ZB.MOM.WW.MxGateway.Contracts.csproj uses" — but ZB.MOM.WW.MxGateway.Contracts.csproj only declares `Google… |
Closed findings
Findings with status Resolved, Won't Fix, or Deferred.
| ID | Severity | Status | Category | Location |
|---|---|---|---|---|
| Admin-001 | Critical | Resolved | Security | Components/Routes.razor:4-11, Program.cs:150 |
| Admin-002 | Critical | Resolved | Security | Components/Pages/Clusters/NewCluster.razor:1-7, Home.razor, Fleet.razor, Hosts.razor, AlarmsHistorian.razor, Clusters/ClustersList.razor, Clusters/Generations.razor, Drivers/FocasDetail.razor |
| Core.AlarmHistorian-001 | Critical | Resolved | Correctness & logic bugs | src/Core/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian/SqliteStoreAndForwardSink.cs:255-278 |
| Core.Scripting-001 | Critical | Resolved | Security | ForbiddenTypeAnalyzer.cs:45, ScriptSandbox.cs:54 |
| Driver.Galaxy-001 | Critical | Resolved | Error handling & resilience | Runtime/EventPump.cs:128, GalaxyDriver.cs:222 |
| Server-001 | Critical | Resolved | Correctness & logic bugs | src/Server/ZB.MOM.WW.OtOpcUa.Server/OpcUa/DriverNodeManager.cs:1791 |
| Admin-003 | High | Resolved | Security | Program.cs:137-139, Hubs/FleetStatusHub.cs:11, Hubs/AlertHub.cs:10, Hubs/ScriptLogHub.cs:30 |
| Admin-004 | High | Resolved | Security | appsettings.json:3,13-14 |
| Admin-005 | High | Resolved | Correctness & logic bugs | Components/Pages/Login.razor:15,107-110 |
| Admin-013 | High | Resolved | Error handling & resilience | Components/Pages/Clusters/ClusterDetail.razor:180-197, Components/Pages/Clusters/AclsTab.razor, Components/Pages/Clusters/RedundancyTab.razor, Components/Pages/RoleGrants.razor, Components/Pages/Hosts.razor, Components/Pages/ScriptLog.razor, Program.cs:157-159 |
| Client.Shared-005 | High | Resolved | Concurrency & thread safety | OpcUaClientService.cs:19, OpcUaClientService.cs:226-249, OpcUaClientService.cs:499-521 |
| Client.Shared-006 | High | Resolved | Concurrency & thread safety | OpcUaClientService.cs:97-100, OpcUaClientService.cs:432-497 |
| Configuration-001 | High | Resolved | Correctness & logic bugs | src/Core/ZB.MOM.WW.OtOpcUa.Configuration/Migrations/20260417215224_StoredProcedures.cs:282 |
| Configuration-008 | High | Resolved | Security | src/Core/ZB.MOM.WW.OtOpcUa.Configuration/Migrations/20260417215224_StoredProcedures.cs:150, :373, :468 |
| Core-001 | High | Resolved | Correctness & logic bugs | src/Core/ZB.MOM.WW.OtOpcUa.Core/Authorization/UserAuthorizationState.cs:50-68 |
| Core-002 | High | Resolved | Security | src/Core/ZB.MOM.WW.OtOpcUa.Core/Authorization/TriePermissionEvaluator.cs:24-50 |
| Core.AlarmHistorian-002 | High | Resolved | Correctness & logic bugs | src/Core/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian/SqliteStoreAndForwardSink.cs:99-105,386-388 |
| Core.AlarmHistorian-004 | High | Resolved | Concurrency & thread safety | src/Core/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian/SqliteStoreAndForwardSink.cs:90,112,176,259 |
| Core.AlarmHistorian-006 | High | Resolved | Error handling & resilience | src/Core/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian/SqliteStoreAndForwardSink.cs:103,135-216 |
| Core.ScriptedAlarms-001 | High | Resolved | Concurrency & thread safety | ScriptedAlarmEngine.cs:175, ScriptedAlarmEngine.cs:178, ScriptedAlarmEngine.cs:73, ScriptedAlarmEngine.cs:368 |
| Core.Scripting-002 | High | Resolved | Security | ForbiddenTypeAnalyzer.cs:70 |
| Core.VirtualTags-001 | High | Resolved | Correctness & logic bugs | src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/VirtualTagEngine.cs:306 |
| Driver.AbCip-001 | High | Resolved | Correctness & logic bugs | AbCipDriver.cs:111, AbCipDriver.cs:163-167 |
| Driver.AbCip-002 | High | Resolved | Correctness & logic bugs | AbCipStatusMapper.cs:65-78 |
| Driver.AbCip-003 | High | Resolved | Correctness & logic bugs | AbCipUdtMemberLayout.cs:32-54, AbCipDriver.cs:426-430, AbCipUdtReadPlanner.cs:48 |
| Driver.AbCip-008 | High | Resolved | Concurrency & thread safety | AbCipDriver.cs:144-152, AbCipDriver.cs:169-183, AbCipDriver.cs:235-281 |
| Driver.AbLegacy-001 | High | Resolved | Correctness & logic bugs | AbLegacyAddress.cs:54, AbLegacyDriver.cs:368-374 |
| Driver.AbLegacy-006 | High | Resolved | Concurrency & thread safety | AbLegacyDriver.cs:107-158, AbLegacyDriver.cs:162-234, LibplctagLegacyTagRuntime.cs |
| Driver.Cli.Common-001 | High | Resolved | Correctness & logic bugs | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Cli.Common/SnapshotFormatter.cs:106-119 |
| Driver.Cli.Common-007 | High | Resolved | Correctness & logic bugs | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Cli.Common/SnapshotFormatter.cs:129 |
| Driver.FOCAS-001 | High | Resolved | Correctness & logic bugs | FocasDriverFactoryExtensions.cs:54-86, FocasDriverFactoryExtensions.cs:132-140 |
| Driver.FOCAS-002 | High | Resolved | Correctness & logic bugs | WireFocasClient.cs:164-179, FocasDriver.cs:513, FocasDriver.cs:593 |
| Driver.Galaxy-002 | High | Resolved | Correctness & logic bugs | Browse/DataTypeMap.cs:13, Runtime/MxValueDecoder.cs:9 |
| Driver.Galaxy-008 | High | Resolved | Error handling & resilience | GalaxyDriver.cs:264-276, Runtime/EventPump.cs:97-103 |
| Driver.Historian.Wonderware-001 | High | Resolved | Correctness and logic bugs | Backend/SdkAlarmHistorianWriteBackend.cs:68, Backend/AahClientManagedAlarmEventWriter.cs:82-103 |
| Driver.Historian.Wonderware.Client-001 | High | Resolved | Correctness & logic bugs | WonderwareHistorianClient.cs:98-113 |
| Driver.Modbus-001 | High | Resolved | Concurrency & thread safety | ModbusDriver.cs:92,99-122 |
| Driver.Modbus.Addressing-001 | High | Resolved | Correctness & logic bugs | ModbusAddressParser.cs:230-235, DirectLogicAddress.cs:66-73 |
| Driver.OpcUaClient-001 | High | Resolved | Correctness & logic bugs | OpcUaClientDriver.cs:444, :466, :517, :540, :599, :610 |
| Driver.OpcUaClient-002 | High | Resolved | Error handling & resilience | OpcUaClientDriver.cs:1330-1359 |
| Driver.OpcUaClient-003 | High | Resolved | Correctness & logic bugs | OpcUaClientDriver.cs:644-711 |
| Driver.OpcUaClient-004 | High | Resolved | Design-document adherence | OpcUaClientDriver.cs:596-632, :789, OpcUaClientDriverOptions.cs |
| Driver.OpcUaClient-005 | High | Resolved | Concurrency & thread safety | OpcUaClientDriver.cs:1297-1319 |
| Driver.S7-001 | High | Resolved | Correctness & logic bugs | S7AddressParser.cs:93, S7Driver.cs:231 |
| Driver.S7-006 | High | Resolved | Concurrency & thread safety | S7Driver.cs:140, S7Driver.cs:457, S7Driver.cs:506 |
| Driver.S7-007 | High | Resolved | Error handling & resilience | S7Driver.cs:200, S7DriverOptions.cs:13, docs/v2/driver-specs.md:434 |
| Driver.S7-011 | High | Resolved | Design-document adherence | S7Driver.cs:82, S7Driver.cs:134, IDriver.cs:24 |
| Driver.TwinCAT-001 | High | Resolved | Correctness & logic bugs | TwinCATDriver.cs:41-78 |
| Driver.TwinCAT-002 | High | Resolved | Correctness & logic bugs | TwinCATDataType.cs:34-48, AdsTwinCATClient.cs:264-281 |
| Driver.TwinCAT-007 | High | Resolved | Concurrency & thread safety | TwinCATDriver.cs:413-429 |
| Driver.TwinCAT-008 | High | Resolved | Concurrency & thread safety | AdsTwinCATClient.cs:162-169, TwinCATDriver.cs:319-324 |
| Driver.TwinCAT-013 | High | Resolved | Design-document adherence | TwinCATDriver.cs:11-12 (capability list), whole file |
| Server-002 | High | Resolved | Correctness & logic bugs | src/Server/ZB.MOM.WW.OtOpcUa.Server/Security/AuthorizationGate.cs:60-63 |
| Server-009 | High | Resolved | Security | src/Server/ZB.MOM.WW.OtOpcUa.Server/Security/LdapOptions.cs:44, src/Server/ZB.MOM.WW.OtOpcUa.Server/Program.cs:74 |
| Admin-006 | Medium | Resolved | Security | Components/Layout/MainLayout.razor:47-49, Program.cs:129,131-135 |
| Admin-007 | Medium | Resolved | Design-document adherence | Components/Pages/Clusters/NewCluster.razor:91,95-96 |
| Admin-008 | Medium | Resolved | Error handling & resilience | Services/ReservationService.cs:28-37 |
| Admin-009 | Medium | Resolved | Testing coverage | src/Server/ZB.MOM.WW.OtOpcUa.Admin (whole module) |
| Analyzers-001 | Medium | Resolved | Correctness & logic bugs | src/Tooling/ZB.MOM.WW.OtOpcUa.Analyzers/UnwrappedCapabilityCallAnalyzer.cs:135-139 |
| Analyzers-006 | Medium | Resolved | Testing coverage | tests/Tooling/ZB.MOM.WW.OtOpcUa.Analyzers.Tests/UnwrappedCapabilityCallAnalyzerTests.cs |
| Client.CLI-001 | Medium | Resolved | Correctness & logic bugs | Commands/HistoryReadCommand.cs:73, Commands/HistoryReadCommand.cs:76 |
| Client.CLI-005 | Medium | Resolved | Concurrency & thread safety | Commands/SubscribeCommand.cs:66-78, Commands/AlarmsCommand.cs:52-64 |
| Client.Shared-001 | Medium | Resolved | Correctness & logic bugs | OpcUaClientService.cs:552 |
| Client.Shared-002 | Medium | Resolved | Correctness & logic bugs | OpcUaClientService.cs:351-355, OpcUaClientService.cs:373 |
| Client.Shared-007 | Medium | Resolved | Concurrency & thread safety | OpcUaClientService.cs:581-622 |
| Client.Shared-008 | Medium | Resolved | Error handling & resilience | OpcUaClientService.cs:170-180, Helpers/ValueConverter.cs:15-31 |
| Client.UI-001 | Medium | Resolved | Correctness & logic bugs | ViewModels/HistoryViewModel.cs:76, ViewModels/HistoryViewModel.cs:77 |
| Client.UI-002 | Medium | Resolved | Correctness & logic bugs | ViewModels/MainWindowViewModel.cs:255, ViewModels/MainWindowViewModel.cs:333 |
| Client.UI-005 | Medium | Resolved | Concurrency & thread safety | ViewModels/MainWindowViewModel.cs:286-304, ViewModels/MainWindowViewModel.cs:155-189 |
| Client.UI-007 | Medium | Resolved | Security | Services/UserSettings.cs:22-23, Services/JsonSettingsService.cs:38-50, ViewModels/MainWindowViewModel.cs:393-408 |
| Client.UI-008 | Medium | Resolved | Performance & resource management | ViewModels/MainWindowViewModel.cs:18, ViewModels/MainWindowViewModel.cs:125-148, App.axaml.cs:18-32 |
| Configuration-002 | Medium | Resolved | Correctness & logic bugs | src/Core/ZB.MOM.WW.OtOpcUa.Configuration/Migrations/20260417215224_StoredProcedures.cs:325 |
| Configuration-003 | Medium | Resolved | Correctness & logic bugs | src/Core/ZB.MOM.WW.OtOpcUa.Configuration/Validation/DraftValidator.cs:73 |
| Configuration-006 | Medium | Resolved | Error handling & resilience | src/Core/ZB.MOM.WW.OtOpcUa.Configuration/LocalCache/ResilientConfigReader.cs:79 |
| Configuration-009 | Medium | Resolved | Security | src/Core/ZB.MOM.WW.OtOpcUa.Configuration/DesignTimeDbContextFactory.cs:14 |
| Core-003 | Medium | Resolved | Correctness & logic bugs | src/Core/ZB.MOM.WW.OtOpcUa.Core/Authorization/PermissionTrie.cs:80-98 |
| Core-005 | Medium | Resolved | Concurrency & thread safety | src/Core/ZB.MOM.WW.OtOpcUa.Core/Authorization/PermissionTrieCache.cs:59-70 |
| Core-006 | Medium | Resolved | Concurrency & thread safety | src/Core/ZB.MOM.WW.OtOpcUa.Core/OpcUa/GenericDriverNodeManager.cs:42-64 |
| Core-007 | Medium | Resolved | Error handling & resilience | src/Core/ZB.MOM.WW.OtOpcUa.Core/Resilience/AlarmSurfaceInvoker.cs:75-83 |
| Core.Abstractions-001 | Medium | Resolved | Correctness & logic bugs | src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/PollGroupEngine.cs:112 |
| Core.Abstractions-002 | Medium | Resolved | Correctness & logic bugs | src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/PollGroupEngine.cs:105-109 |
| Core.Abstractions-003 | Medium | Resolved | Concurrency & thread safety | src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/PollGroupEngine.cs:64,121-130 |
| Core.AlarmHistorian-003 | Medium | Resolved | OtOpcUa conventions | src/Core/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian/SqliteStoreAndForwardSink.cs:107-127,218-243,246-253 |
| Core.AlarmHistorian-005 | Medium | Resolved | Concurrency & thread safety | src/Core/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian/SqliteStoreAndForwardSink.cs:66-71,141-143,199,386-388 |
| Core.AlarmHistorian-007 | Medium | Resolved | Error handling & resilience | src/Core/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian/SqliteStoreAndForwardSink.cs:172-174 |
| Core.AlarmHistorian-009 | Medium | Resolved | Design-document adherence | src/Core/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian/SqliteStoreAndForwardSink.cs:317-347 |
| Core.AlarmHistorian-010 | Medium | Resolved | Testing coverage | tests/Core/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian.Tests/SqliteStoreAndForwardSinkTests.cs |
| Core.ScriptedAlarms-002 | Medium | Resolved | Correctness & logic bugs | ScriptedAlarmEngine.cs:162, ScriptedAlarmEngine.cs:90 |
| Core.ScriptedAlarms-004 | Medium | Resolved | Concurrency & thread safety | ScriptedAlarmEngine.cs:138-143, ScriptedAlarmEngine.cs:227-234 |
| Core.ScriptedAlarms-005 | Medium | Resolved | Concurrency & thread safety | ScriptedAlarmEngine.cs:365-369, ScriptedAlarmEngine.cs:416-424 |
| Core.ScriptedAlarms-007 | Medium | Resolved | Error handling & resilience | ScriptedAlarmEngine.cs:216, ScriptedAlarmEngine.cs:251, ScriptedAlarmEngine.cs:154, ScriptedAlarmEngine.cs:387 |
| Core.ScriptedAlarms-012 | Medium | Resolved | Testing coverage | tests/Core/ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms.Tests/ScriptedAlarmEngineTests.cs |
| Core.Scripting-003 | Medium | Resolved | Security | TimedScriptEvaluator.cs:9, ScriptSandbox.cs:30 |
| Core.Scripting-004 | Medium | Resolved | Correctness & logic bugs | DependencyExtractor.cs:73 |
| Core.Scripting-007 | Medium | Resolved | Error handling & resilience | TimedScriptEvaluator.cs:60 |
| Core.Scripting-010 | Medium | Resolved | Testing coverage | tests/Core/ZB.MOM.WW.OtOpcUa.Core.Scripting.Tests/ScriptSandboxTests.cs:54 |
| Core.VirtualTags-002 | Medium | Resolved | Correctness & logic bugs | src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/VirtualTagEngine.cs:237 |
| Core.VirtualTags-003 | Medium | Resolved | Correctness & logic bugs | src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/VirtualTagEngine.cs:117-120 |
| Core.VirtualTags-005 | Medium | Resolved | Concurrency & thread safety | src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/VirtualTagSource.cs:50-64 |
| Core.VirtualTags-008 | Medium | Resolved | Performance & resource management | src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/DependencyGraph.cs:81-115 |
| Core.VirtualTags-012 | Medium | Resolved | Testing coverage | tests/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags.Tests/ |
| Driver.AbCip-004 | Medium | Resolved | Correctness & logic bugs | AbCipDataType.cs:51-58, LibplctagTagRuntime.cs:47-49,53 |
| Driver.AbCip-005 | Medium | Resolved | Correctness & logic bugs | AbCipDriver.cs:124-141 |
| Driver.AbCip-006 | Medium | Resolved | OtOpcUa conventions | PlcTagHandle.cs:28-59, AbCipDriver.cs:806-807,832-833, LibplctagTagRuntime.cs:117 |
| Driver.AbCip-009 | Medium | Resolved | Concurrency & thread safety | AbCipDriver.cs:621-648, AbCipDriver.cs:591-614 |
| Driver.AbCip-010 | Medium | Resolved | Error handling & resilience | AbCipDriver.cs:621-648, AbCipDriver.cs:346-391 |
| Driver.AbCip-014 | Medium | Resolved | Testing coverage | tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Tests/AbCipStatusMapperTests.cs:28-40 |
| Driver.AbCip.Cli-001 | Medium | Resolved | Error handling & resilience | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Cli/Commands/WriteCommand.cs:70-85 |
| Driver.AbCip.Cli-002 | Medium | Resolved | Correctness & logic bugs | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Cli/Commands/ProbeCommand.cs:21-23; Commands/ReadCommand.cs:24-25; Commands/SubscribeCommand.cs:20-22 |
| Driver.AbLegacy-002 | Medium | Resolved | Correctness & logic bugs | AbLegacyDriver.cs:368 |
| Driver.AbLegacy-003 | Medium | Resolved | Correctness & logic bugs | AbLegacyAddress.cs:62-95 |
| Driver.AbLegacy-004 | Medium | Resolved | Correctness & logic bugs | LibplctagLegacyTagRuntime.cs:36-37 |
| Driver.AbLegacy-007 | Medium | Resolved | Concurrency & thread safety | AbLegacyDriver.cs:411-438, AbLegacyDriver.cs:386-409 |
| Driver.AbLegacy-008 | Medium | Resolved | Concurrency & thread safety | AbLegacyDriver.cs:21, AbLegacyDriver.cs:138-146, AbLegacyDriver.cs:216-229 |
| Driver.AbLegacy-009 | Medium | Resolved | Error handling & resilience | AbLegacyDriver.cs:41-74 |
| Driver.AbLegacy-010 | Medium | Resolved | Error handling & resilience | AbLegacyStatusMapper.cs:26-56 |
| Driver.AbLegacy-012 | Medium | Resolved | Design-document adherence | PlcFamilies/AbLegacyPlcFamilyProfile.cs:7-54, AbLegacyDriver.cs:48-52 |
| Driver.AbLegacy.Cli-001 | Medium | Resolved | Error handling & resilience | Commands/WriteCommand.cs:46, Commands/WriteCommand.cs:62-72 |
| Driver.Cli.Common-002 | Medium | Resolved | Correctness & logic bugs | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Cli.Common/SnapshotFormatter.cs:101-122 |
| Driver.Cli.Common-003 | Medium | Resolved | Concurrency & thread safety | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Cli.Common/DriverCommandBase.cs:51-59 |
| Driver.Cli.Common-005 | Medium | Resolved | Testing coverage | tests/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Cli.Common.Tests/SnapshotFormatterTests.cs:27-37 |
| Driver.FOCAS-003 | Medium | Resolved | Correctness & logic bugs | FocasDriver.cs:71-79 |
| Driver.FOCAS-004 | Medium | Resolved | OtOpcUa conventions | FocasDriver.cs:374-379, WireFocasClient.cs:48-50 |
| Driver.FOCAS-005 | Medium | Resolved | Concurrency & thread safety | FocasDriver.cs:28, FocasDriver.cs:206-215, FocasDriver.cs:261, FocasDriver.cs:274 |
| Driver.FOCAS-006 | Medium | Resolved | Error handling & resilience | FocasDriver.cs:859-874, WireFocasClient.cs:22-31 |
| Driver.FOCAS-012 | Medium | Resolved | Testing coverage | FocasDriverFactoryExtensions.cs, FocasDriver.cs:495-629 (FixedTreeLoopAsync) |
| Driver.Galaxy-003 | Medium | Resolved | Correctness & logic bugs | Runtime/StatusCodeMap.cs:86 |
| Driver.Galaxy-004 | Medium | Resolved | Correctness & logic bugs | GalaxyDriver.cs:901 |
| Driver.Galaxy-006 | Medium | Resolved | Concurrency & thread safety | GalaxyDriver.cs:848-861 |
| Driver.Galaxy-007 | Medium | Resolved | Concurrency & thread safety | GalaxyDriver.cs:937-968 |
| Driver.Galaxy-009 | Medium | Resolved | Error handling & resilience | GalaxyDriver.cs:354-371 |
| Driver.Galaxy-011 | Medium | Resolved | Performance & resource management | GalaxyDriver.cs:411 |
| Driver.Galaxy-014 | Medium | Resolved | Testing coverage | src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy (module-wide) |
| Driver.Historian.Wonderware-002 | Medium | Resolved | Correctness and logic bugs | Ipc/HistorianFrameHandler.cs:162, :181 |
| Driver.Historian.Wonderware-003 | Medium | Resolved | Correctness and logic bugs | Backend/HistorianDataSource.cs:320-323, :457-460 |
| Driver.Historian.Wonderware-006 | Medium | Resolved | Error handling and resilience | Ipc/PipeServer.cs:120-128 |
| Driver.Historian.Wonderware-009 | Medium | Resolved | Performance and resource management | Backend/HistorianDataSource.cs:382-395, Ipc/Contracts.cs:85-99 |
| Driver.Historian.Wonderware.Client-002 | Medium | Resolved | Correctness & logic bugs | WonderwareHistorianClient.cs:154-199, IAlarmHistorianSink.cs:66-74 |
| Driver.Historian.Wonderware.Client-005 | Medium | Resolved | Error handling & resilience | Ipc/FrameReader.cs:31-32 |
| Driver.Historian.Wonderware.Client-007 | Medium | Resolved | Security | WonderwareHistorianClient.cs:276 |
| Driver.Historian.Wonderware.Client-009 | Medium | Resolved | Testing coverage | tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware.Client.Tests/WonderwareHistorianClientTests.cs |
| Driver.Modbus-002 | Medium | Resolved | Correctness & logic bugs | ModbusDriver.cs:127-186 |
| Driver.Modbus-004 | Medium | Resolved | Performance & resource management | ModbusDriver.cs:1468-1473 |
| Driver.Modbus-005 | Medium | Resolved | Correctness & logic bugs | ModbusDriver.cs:777-798,323-330 |
| Driver.Modbus-006 | Medium | Resolved | Error handling & resilience | ModbusDriver.cs:514-524,532-550 |
| Driver.Modbus.Addressing-002 | Medium | Resolved | Correctness & logic bugs | ModbusAddressParser.cs:86-94 |
| Driver.Modbus.Addressing-003 | Medium | Resolved | Correctness & logic bugs | ModbusAddressParser.cs:405-406, ModbusAddressParser.cs:128 |
| Driver.Modbus.Addressing-004 | Medium | Resolved | Correctness & logic bugs | ModbusAddressParser.cs:182-194 |
| Driver.Modbus.Addressing-005 | Medium | Resolved | Error handling & resilience | ModbusAddressParser.cs:200-213 |
| Driver.Modbus.Addressing-008 | Medium | Resolved | Testing coverage | tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Addressing.Tests/ |
| Driver.Modbus.Cli-001 | Medium | Resolved | Correctness & logic bugs | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Cli/Commands/SubscribeCommand.cs:43-51 |
| Driver.Modbus.Cli-002 | Medium | Resolved | Correctness & logic bugs | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Cli/Commands/WriteCommand.cs:54-89 |
| Driver.OpcUaClient-006 | Medium | Resolved | Concurrency & thread safety | OpcUaClientDriver.cs:1330-1359 |
| Driver.OpcUaClient-007 | Medium | Resolved | Concurrency & thread safety | OpcUaClientDriver.cs:1374, :1376-1383, :508 |
| Driver.OpcUaClient-008 | Medium | Resolved | Error handling & resilience | OpcUaClientDriver.cs:1092-1099 |
| Driver.OpcUaClient-009 | Medium | Resolved | Error handling & resilience | OpcUaClientDriver.cs:560-564 |
| Driver.OpcUaClient-010 | Medium | Resolved | Correctness & logic bugs | OpcUaClientDriver.cs:823-824 |
| Driver.OpcUaClient-012 | Medium | Resolved | Security | OpcUaClientDriver.cs:210-217 |
| Driver.OpcUaClient-013 | Medium | Resolved | Performance & resource management | OpcUaClientDriver.cs:436-437 |
| Driver.OpcUaClient-015 | Medium | Resolved | Testing coverage | tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Tests/*, tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.IntegrationTests/OpcUaClientSmokeTests.cs |
| Driver.S7-002 | Medium | Resolved | Correctness & logic bugs | S7Driver.cs:350 |
| Driver.S7-004 | Medium | Resolved | OtOpcUa conventions | S7Driver.cs (whole file) |
| Driver.S7-008 | Medium | Resolved | Error handling & resilience | S7Driver.cs:286 |
| Driver.S7-012 | Medium | Resolved | Design-document adherence | S7DriverOptions.cs:59, S7Driver.cs:457 |
| Driver.S7-014 | Medium | Resolved | Testing coverage | tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.S7.Tests/ |
| Driver.S7.Cli-001 | Medium | Resolved | Error handling & resilience | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.S7.Cli/Commands/WriteCommand.cs:65-80 |
| Driver.S7.Cli-002 | Medium | Resolved | Design-document adherence | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.S7.Cli/Commands/ReadCommand.cs:22-29, Commands/WriteCommand.cs:21-33, Commands/SubscribeCommand.cs:18-21; docs/Driver.S7.Cli.md:70-73,80-81 |
| Driver.S7.Cli-003 | Medium | Resolved | Error handling & resilience | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.S7.Cli/Commands/ProbeCommand.cs:38-50 |
| Driver.TwinCAT-003 | Medium | Resolved | Correctness & logic bugs | AdsTwinCATClient.cs:264-281, 283-300 |
| Driver.TwinCAT-005 | Medium | Resolved | OtOpcUa conventions | TwinCATDriver.cs (whole file), AdsTwinCATClient.cs (whole file) |
| Driver.TwinCAT-009 | Medium | Resolved | Concurrency & thread safety | TwinCATDriver.cs:80-99, 41-72, 366-388 |
| Driver.TwinCAT-010 | Medium | Resolved | Error handling & resilience | AdsTwinCATClient.cs:178-195 |
| Driver.TwinCAT-011 | Medium | Resolved | Error handling & resilience | TwinCATStatusMapper.cs:29-42 |
| Driver.TwinCAT-012 | Medium | Resolved | Performance & resource management | TwinCATDriver.cs:102, AdsTwinCATClient.cs:178-195 |
| Server-003 | Medium | Resolved | Correctness & logic bugs | src/Server/ZB.MOM.WW.OtOpcUa.Server/Phase7/RingBufferHistoryWriter.cs:96-119 |
| Server-005 | Medium | Resolved | Concurrency & thread safety | src/Server/ZB.MOM.WW.OtOpcUa.Server/Alarms/AlarmConditionService.cs:166, src/Server/ZB.MOM.WW.OtOpcUa.Server/OpcUa/DriverNodeManager.cs:303-311 |
| Server-007 | Medium | Resolved | Error handling & resilience | src/Server/ZB.MOM.WW.OtOpcUa.Server/OpcUa/OpcUaApplicationHost.cs:179-183 |
| Server-010 | Medium | Resolved | Security | src/Server/ZB.MOM.WW.OtOpcUa.Server/OpcUa/OpcUaServerOptions.cs:59, src/Server/ZB.MOM.WW.OtOpcUa.Server/OpcUa/OpcUaApplicationHost.cs:284-291 |
| Server-011 | Medium | Resolved | Security | src/Server/ZB.MOM.WW.OtOpcUa.Server/OpcUa/OpcUaApplicationHost.cs:322-346 |
| Server-013 | Medium | Resolved | Design-document adherence | src/Server/ZB.MOM.WW.OtOpcUa.Server/OpcUa/OpcUaServerOptions.cs:9-19, src/Server/ZB.MOM.WW.OtOpcUa.Server/OpcUa/OpcUaApplicationHost.cs:296-346, src/Server/ZB.MOM.WW.OtOpcUa.Server/Program.cs:89 |
| Admin-010 | Low | Resolved | OtOpcUa conventions | Components/App.razor:9,16 |
| Admin-011 | Low | Resolved | Concurrency & thread safety | Hubs/FleetStatusPoller.cs:24-26,98-103 |
| Admin-012 | Low | Resolved | Design-document adherence | Services/EquipmentCsvImporter.cs:18-19,33-37,229,232 |
| Analyzers-002 | Low | Resolved | Correctness & logic bugs | src/Tooling/ZB.MOM.WW.OtOpcUa.Analyzers/UnwrappedCapabilityCallAnalyzer.cs:46-50,130 |
| Analyzers-003 | Low | Resolved | Error handling & resilience | src/Tooling/ZB.MOM.WW.OtOpcUa.Analyzers/UnwrappedCapabilityCallAnalyzer.cs:80,114-116 |
| Analyzers-004 | Low | Resolved | Performance & resource management | src/Tooling/ZB.MOM.WW.OtOpcUa.Analyzers/UnwrappedCapabilityCallAnalyzer.cs:95-112 |
| Analyzers-005 | Low | Resolved | Design-document adherence | src/Tooling/ZB.MOM.WW.OtOpcUa.Analyzers/UnwrappedCapabilityCallAnalyzer.cs:33-43 |
| Analyzers-007 | Low | Resolved | Documentation & comments | src/Tooling/ZB.MOM.WW.OtOpcUa.Analyzers/UnwrappedCapabilityCallAnalyzer.cs:21-26 |
| Client.CLI-002 | Low | Resolved | Correctness & logic bugs | Commands/SubscribeCommand.cs:129-137 |
| Client.CLI-003 | Low | Resolved | Correctness & logic bugs | Commands/BrowseCommand.cs:29-30, Commands/SubscribeCommand.cs:20-27, Commands/AlarmsCommand.cs:28-29, Commands/HistoryReadCommand.cs:42-43 |
| Client.CLI-004 | Low | Resolved | OtOpcUa conventions | Commands/SubscribeCommand.cs:13-37 |
| Client.CLI-006 | Low | Resolved | Error handling & resilience | Commands/HistoryReadCommand.cs:73, Commands/HistoryReadCommand.cs:76, Helpers/NodeIdParser.cs:39 |
| Client.CLI-007 | Low | Resolved | Performance & resource management | CommandBase.cs:112-123 |
| Client.CLI-008 | Low | Resolved | Documentation & comments | docs/Client.CLI.md:158-217 |
| Client.CLI-009 | Low | Resolved | Code organization & conventions | Commands/SubscribeCommand.cs:66-165, Commands/AlarmsCommand.cs:52-91 |
| Client.CLI-010 | Low | Resolved | Testing coverage | tests/Client/ZB.MOM.WW.OtOpcUa.Client.CLI.Tests/SubscribeCommandTests.cs |
| Client.Shared-003 | Low | Resolved | Correctness & logic bugs | Adapters/DefaultSessionAdapter.cs:76, Adapters/DefaultSessionAdapter.cs:273 |
| Client.Shared-004 | Low | Resolved | OtOpcUa conventions | Adapters/DefaultSessionAdapter.cs:228, Adapters/DefaultSessionAdapter.cs:121, Adapters/DefaultSessionAdapter.cs:172 |
| Client.Shared-009 | Low | Resolved | Error handling & resilience / Documentation & comments | OpcUaClientService.cs:302-322 |
| Client.Shared-010 | Low | Resolved | Performance & resource management | Models/ConnectionSettings.cs:48, OpcUaClientService.cs:408-417 |
| Client.Shared-011 | Low | Resolved | Testing coverage | tests/Client/ZB.MOM.WW.OtOpcUa.Client.Shared.Tests/OpcUaClientServiceTests.cs |
| Client.UI-003 | Low | Resolved | OtOpcUa conventions | ZB.MOM.WW.OtOpcUa.Client.UI.csproj:20-21, Program.cs:14-20 |
| Client.UI-004 | Low | Resolved | OtOpcUa conventions | Views/MainWindow.axaml.cs:125-138 |
| Client.UI-006 | Low | Resolved | Error handling & resilience | ViewModels/MainWindowViewModel.cs:244-252, ViewModels/AlarmsViewModel.cs:88-112, ViewModels/SubscriptionsViewModel.cs:79-94 |
| Client.UI-009 | Low | Resolved | Design-document adherence | ViewModels/HistoryViewModel.cs:44-54 |
| Client.UI-010 | Low | Resolved | Code organization & conventions | Controls/DateTimeRangePicker.axaml.cs:33-37, Controls/DateTimeRangePicker.axaml.cs:70-80 |
| Client.UI-011 | Low | Resolved | Documentation & comments | Views/MainWindow.axaml:81, Services/JsonSettingsService.cs:11-15 |
| Configuration-004 | Low | Resolved | OtOpcUa conventions | src/Core/ZB.MOM.WW.OtOpcUa.Configuration/Enums/NodePermissions.cs:8, src/Core/ZB.MOM.WW.OtOpcUa.Configuration/OtOpcUaConfigDbContext.cs:417 |
| Configuration-005 | Low | Resolved | Concurrency & thread safety | src/Core/ZB.MOM.WW.OtOpcUa.Configuration/LocalCache/LiteDbConfigCache.cs:50 |
| Configuration-007 | Low | Resolved | Error handling & resilience | src/Core/ZB.MOM.WW.OtOpcUa.Configuration/Apply/GenerationApplier.cs:44 |
| Configuration-010 | Low | Resolved | Security | src/Core/ZB.MOM.WW.OtOpcUa.Configuration/LocalCache/ResilientConfigReader.cs:81 |
| Configuration-011 | Low | Resolved | Testing coverage | src/Core/ZB.MOM.WW.OtOpcUa.Configuration/Apply/GenerationApplier.cs:7, src/Core/ZB.MOM.WW.OtOpcUa.Configuration/Validation/DraftValidator.cs:60 |
| Core-004 | Low | Resolved | OtOpcUa conventions | src/Core/ZB.MOM.WW.OtOpcUa.Core/Hosting/DriverHost.cs:55,72,87 |
| Core-008 | Low | Resolved | Error handling & resilience | src/Core/ZB.MOM.WW.OtOpcUa.Core/OpcUa/GenericDriverNodeManager.cs:42-64 |
| Core-009 | Low | Resolved | Performance & resource management | src/Core/ZB.MOM.WW.OtOpcUa.Core/Resilience/CapabilityInvoker.cs:121-128 |
| Core-010 | Low | Resolved | Code organization & conventions | src/Core/ZB.MOM.WW.OtOpcUa.Core/Resilience/DriverResilienceOptions.cs:45-52 |
| Core-011 | Low | Resolved | Testing coverage | src/Core/ZB.MOM.WW.OtOpcUa.Core/Authorization/PermissionTrieBuilder.cs:58-75 |
| Core-012 | Low | Resolved | Documentation & comments | src/Core/ZB.MOM.WW.OtOpcUa.Core/Stability/WedgeDetector.cs:26, src/Core/ZB.MOM.WW.OtOpcUa.Core/Observability/DriverHealthReport.cs:11-22 |
| Core.Abstractions-004 | Low | Resolved | Concurrency & thread safety | src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/DriverTypeRegistry.cs:23-40 |
| Core.Abstractions-005 | Low | Resolved | Error handling & resilience | src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/PollGroupEngine.cs:90,99 |
| Core.Abstractions-006 | Low | Resolved | Code organization & conventions | src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/IHistoryProvider.cs:63,84-86, src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/Historian/IHistorianDataSource.cs:30,63 |
| Core.Abstractions-007 | Low | Resolved | Testing coverage | tests/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions.Tests/PollGroupEngineTests.cs |
| Core.Abstractions-008 | Low | Resolved | Documentation & comments | src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/DriverHealth.cs:9, src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/IHistoryProvider.cs:39-43,65-69 |
| Core.AlarmHistorian-008 | Low | Resolved | Performance & resource management | src/Core/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian/SqliteStoreAndForwardSink.cs:107-127,255-278 |
| Core.AlarmHistorian-011 | Low | Resolved | Documentation & comments | src/Core/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian/IAlarmHistorianSink.cs:5-9,76, AlarmHistorianEvent.cs:20 |
| Core.ScriptedAlarms-003 | Low | Resolved | Documentation & comments | ScriptedAlarmEngine.cs:343, docs/ScriptedAlarms.md:107 |
| Core.ScriptedAlarms-006 | Low | Resolved | Concurrency & thread safety | ScriptedAlarmEngine.cs:232, ScriptedAlarmEngine.cs:369 |
| Core.ScriptedAlarms-008 | Low | Resolved | Performance & resource management | Part9StateMachine.cs:261-268 |
| Core.ScriptedAlarms-009 | Low | Resolved | Performance & resource management | ScriptedAlarmEngine.cs:309-315, ScriptedAlarmEngine.cs:271 |
| Core.ScriptedAlarms-010 | Low | Resolved | Design-document adherence | ScriptedAlarmEngine.cs:325-336, AlarmPredicateContext.cs:33-40, MessageTemplate.cs:47 |
| Core.ScriptedAlarms-011 | Low | Resolved | Code organization & conventions | Part9StateMachine.cs:275 |
| Core.Scripting-005 | Low | Resolved | Correctness & logic bugs | DependencyExtractor.cs:97 |
| Core.Scripting-006 | Low | Resolved | Concurrency & thread safety | CompiledScriptCache.cs:55 |
| Core.Scripting-008 | Low | Resolved | Performance & resource management | CompiledScriptCache.cs:34, ScriptEvaluator.cs:34 |
| Core.Scripting-009 | Low | Resolved | Design-document adherence | ForbiddenTypeAnalyzer.cs:45 |
| Core.Scripting-011 | Low | Resolved | Testing coverage | tests/Core/ZB.MOM.WW.OtOpcUa.Core.Scripting.Tests/ |
| Core.VirtualTags-004 | Low | Resolved | Correctness & logic bugs | src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/VirtualTagEngine.cs:349 |
| Core.VirtualTags-006 | Low | Resolved | Concurrency & thread safety | src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/VirtualTagEngine.cs:177-182, :395-401 |
| Core.VirtualTags-007 | Low | Resolved | Error handling & resilience | src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/TimerTriggerScheduler.cs:58 |
| Core.VirtualTags-009 | Low | Resolved | Performance & resource management | src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/DependencyGraph.cs:64-65, :72-73 |
| Core.VirtualTags-010 | Low | Resolved | Documentation & comments | src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/ITagUpstreamSource.cs:18, VirtualTagContext.cs:30, VirtualTagDefinition.cs:28 |
| Core.VirtualTags-011 | Low | Resolved | Code organization & conventions | src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/VirtualTagEngine.cs:404-409 |
| Core.VirtualTags-013 | Low | Resolved | Documentation & comments | src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/DependencyGraph.cs:266-270 |
| Driver.AbCip-007 | Low | Resolved | OtOpcUa conventions | AbCipDriver.cs (whole file), AbCipAlarmProjection.cs, LibplctagTagRuntime.cs |
| Driver.AbCip-011 | Low | Resolved | Error handling & resilience | AbCipDriver.cs:144-152, AbCipDriverOptions.cs:131-143 |
| Driver.AbCip-012 | Low | Resolved | Performance & resource management | LibplctagTemplateReader.cs:15-35, AbCipDriver.cs:88-92 |
| Driver.AbCip-013 | Low | Resolved | Design-document adherence | AbCipDriverOptions.cs:70-73, PlcFamilies/AbCipPlcFamilyProfile.cs:13-19, LibplctagTagRuntime.cs:16-27 |
| Driver.AbCip-015 | Low | Resolved | Documentation & comments | AbCipDriver.cs:9-11, PlcTagHandle.cs:23-27,53-58, AbCipTemplateCache.cs:12-15, IAbCipTagEnumerator.cs:6-11, AbCipDriverOptions.cs:21 |
| Driver.AbCip.Cli-003 | Low | Resolved | Concurrency & thread safety | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Cli/Commands/SubscribeCommand.cs:50-56,60-61 |
| Driver.AbCip.Cli-004 | Low | Resolved | Error handling & resilience | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Cli/Commands/SubscribeCommand.cs:28,58; AbCipCommandBase.cs:26-34 |
| Driver.AbCip.Cli-005 | Low | Resolved | Performance & resource management | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Cli.Common/DriverCommandBase.cs:51-59 |
| Driver.AbCip.Cli-006 | Low | Resolved | Design-document adherence | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Cli/AbCipCommandBase.cs:29-34 |
| Driver.AbCip.Cli-007 | Low | Resolved | Testing coverage | tests/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Cli.Tests/WriteCommandParseValueTests.cs |
| Driver.AbCip.Cli-008 | Low | Resolved | Documentation & comments | docs/Driver.AbCip.Cli.md:8-9 |
| Driver.AbLegacy-005 | Low | Resolved | OtOpcUa conventions | AbLegacyDriver.cs (whole file) |
| Driver.AbLegacy-011 | Low | Resolved | Performance & resource management | AbLegacyDriver.cs:440 |
| Driver.AbLegacy-013 | Low | Resolved | Code organization & conventions | AbLegacyDriver.cs:340-345, AbLegacyDriver.cs:238-264 |
| Driver.AbLegacy.Cli-002 | Low | Resolved | Correctness & logic bugs | Commands/WriteCommand.cs:27-29, Program.cs:6-9 |
| Driver.AbLegacy.Cli-003 | Low | Resolved | Concurrency & thread safety | Commands/SubscribeCommand.cs:47-53 |
| Driver.AbLegacy.Cli-004 | Low | Resolved | Error handling & resilience | Commands/ProbeCommand.cs:37-56, Commands/ReadCommand.cs:39-50, Commands/WriteCommand.cs:48-59, Commands/SubscribeCommand.cs:41-76 |
| Driver.AbLegacy.Cli-005 | Low | Resolved | Design-document adherence | Commands/SubscribeCommand.cs:23-25, docs/Driver.AbLegacy.Cli.md:94-96 |
| Driver.AbLegacy.Cli-006 | Low | Resolved | Code organization & conventions | Commands/ProbeCommand.cs:20-22 |
| Driver.AbLegacy.Cli-007 | Low | Resolved | Testing coverage | tests/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Cli.Tests/WriteCommandParseValueTests.cs |
| Driver.Cli.Common-004 | Low | Resolved | Error handling & resilience | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Cli.Common/SnapshotFormatter.cs:68-70 |
| Driver.Cli.Common-006 | Low | Resolved | Documentation & comments | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Cli.Common/SnapshotFormatter.cs:71, src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Cli.Common/DriverCommandBase.cs:9 |
| Driver.Cli.Common-008 | Low | Resolved | Testing coverage | tests/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Cli.Common.Tests/SnapshotFormatterTests.cs:50-64 |
| Driver.FOCAS-007 | Low | Resolved | Error handling & resilience | FocasDriver.cs:140-148, FocasDriver.cs:478-484, FocasDriver.cs:529-533, FocasAlarmProjection.cs:61-63 |
| Driver.FOCAS-008 | Low | Resolved | Performance & resource management | FocasDriver.cs:201, FocasDriver.cs:253 |
| Driver.FOCAS-009 | Low | Resolved | Design-document adherence | FocasDriverOptions.cs:110-115, FocasDriver.cs:468-486, FocasDriverFactoryExtensions.cs:75-80 |
| Driver.FOCAS-010 | Low | Resolved | Code organization & conventions | IFocasClient.cs:210-227 (FocasOpMode), FocasConstants.cs:42-78 (FocasOperationMode) |
| Driver.FOCAS-011 | Low | Resolved | Code organization & conventions | IFocasClient.cs:275-287 (FocasAlarmType), FocasAlarmProjection.cs:149-175 |
| Driver.FOCAS.Cli-001 | Low | Resolved | Error handling & resilience | Commands/WriteCommand.cs:58-68 |
| Driver.FOCAS.Cli-002 | Low | Resolved | Concurrency & thread safety | Commands/SubscribeCommand.cs:45-51 |
| Driver.FOCAS.Cli-003 | Low | Resolved | Error handling & resilience | FocasCommandBase.cs:19 (CncPort), FocasCommandBase.cs:27 (TimeoutMs), Commands/SubscribeCommand.cs:23 (IntervalMs) |
| Driver.FOCAS.Cli-004 | Low | Resolved | Performance & resource management | Commands/ProbeCommand.cs:37,54; Commands/ReadCommand.cs:37,46; Commands/WriteCommand.cs:45,54; Commands/SubscribeCommand.cs:39,73 |
| Driver.FOCAS.Cli-005 | Low | Resolved | Design-document adherence | Commands/WriteCommand.cs:50, Commands/ProbeCommand.cs:50 (via SnapshotFormatter.FormatStatus) |
| Driver.Galaxy-005 | Low | Resolved | OtOpcUa conventions | Runtime/EventPump.cs:81-88 |
| Driver.Galaxy-010 | Low | Resolved | Security | GalaxyDriver.cs:311-341 |
| Driver.Galaxy-012 | Low | Resolved | Performance & resource management | Runtime/SubscriptionRegistry.cs:65-67, GalaxyDriver.cs:538, GalaxyDriver.cs:675 |
| Driver.Galaxy-013 | Low | Resolved | Design-document adherence | GalaxyDriver.cs:14-27, GalaxyDriver.cs:374-382, Config/GalaxyDriverOptions.cs:84-86 |
| Driver.Historian.Wonderware-004 | Low | Resolved | Correctness and logic bugs | Backend/SdkAlarmHistorianWriteBackend.cs:198-201 |
| Driver.Historian.Wonderware-005 | Low | Resolved | Concurrency and thread safety | Backend/HistorianDataSource.cs:124, :126-127 |
| Driver.Historian.Wonderware-007 | Low | Resolved | Error handling and resilience | Ipc/PipeServer.cs:70-75 |
| Driver.Historian.Wonderware-008 | Low | Resolved | Error handling and resilience | Backend/HistorianDataSource.cs:301-307, :374-380 |
| Driver.Historian.Wonderware-010 | Low | Resolved | Performance and resource management | Backend/HistorianConfiguration.cs:32-36, Backend/HistorianDataSource.cs (all read methods) |
| Driver.Historian.Wonderware-011 | Low | Resolved | Design-document adherence | Backend/HistorianDataSource.cs:9-12, Backend/IHistorianDataSource.cs:9-11, Backend/HistorianSample.cs:7-9, Backend/HistorianConfiguration.cs:7-9 |
| Driver.Historian.Wonderware-012 | Low | Resolved | Testing coverage | Backend/HistorianDataSource.cs, tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware.Tests/ |
| Driver.Historian.Wonderware.Client-003 | Low | Resolved | Concurrency & thread safety | WonderwareHistorianClient.cs:207, WonderwareHistorianClient.cs:132-150 |
| Driver.Historian.Wonderware.Client-004 | Low | Resolved | Concurrency & thread safety | WonderwareHistorianClient.cs:203-267 |
| Driver.Historian.Wonderware.Client-006 | Low | Resolved | Error handling & resilience | Internal/PipeChannel.cs:96-107, WonderwareHistorianClientOptions.cs:11-12 |
| Driver.Historian.Wonderware.Client-008 | Low | Resolved | Security | ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware.Client.csproj:29-32 |
| Driver.Historian.Wonderware.Client-010 | Low | Resolved | Documentation & comments | WonderwareHistorianClient.cs:355-361, WonderwareHistorianClient.cs:132-150 |
| Driver.Modbus-003 | Low | Resolved | Concurrency & thread safety | ModbusDriver.cs:59,188,241,259,266,726,745,759 |
| Driver.Modbus-007 | Low | Resolved | Design-document adherence | ModbusDriver.cs:1392, ModbusDriverOptions.cs:74-80 |
| Driver.Modbus-008 | Low | Resolved | Documentation & comments | ModbusDriver.cs:411-417,700-703,737-744 |
| Driver.Modbus-009 | Low | Resolved | Correctness & logic bugs | ModbusDriver.cs:1160-1167, ModbusTcpTransport.cs:94-95 |
| Driver.Modbus-010 | Low | Resolved | Error handling & resilience | ModbusDriver.cs:864-868, ModbusDriverOptions.cs:116-125 |
| Driver.Modbus-011 | Low | Resolved | Code organization & conventions | ModbusDriver.cs:23-43,89-97,408-432 |
| Driver.Modbus-012 | Low | Resolved | Testing coverage | tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Tests/ |
| Driver.Modbus.Addressing-006 | Low | Resolved | Error handling & resilience | ModbusAddressParser.cs:297-301 |
| Driver.Modbus.Addressing-007 | Low | Resolved | Design-document adherence | ModbusDataType.cs:91-95, docs/v2/dl205.md section Strings |
| Driver.Modbus.Addressing-009 | Low | Resolved | Documentation & comments | ModbusModiconAddress.cs:55-64, ModbusModiconAddress.cs:104-110 |
| Driver.Modbus.Cli-003 | Low | Resolved | Correctness & logic bugs | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Cli/ModbusCommandBase.cs:14-24 |
| Driver.Modbus.Cli-004 | Low | Resolved | Concurrency & thread safety | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Cli/Commands/SubscribeCommand.cs:61-67 |
| Driver.Modbus.Cli-005 | Low | Resolved | Error handling & resilience | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Cli/Commands/ProbeCommand.cs:21-54; Commands/ReadCommand.cs:46-75; Commands/WriteCommand.cs:54-89 |
| Driver.Modbus.Cli-006 | Low | Resolved | Error handling & resilience | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Cli/Commands/ProbeCommand.cs:35-53 |
| Driver.Modbus.Cli-007 | Low | Resolved | Design-document adherence | docs/Driver.Modbus.Cli.md:124-156; src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Cli/Commands/ReadCommand.cs |
| Driver.Modbus.Cli-008 | Low | Resolved | Testing coverage | tests/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Cli.Tests/ |
| Driver.OpcUaClient-011 | Low | Resolved | Documentation & comments | OpcUaClientDriver.cs:1007-1015 |
| Driver.OpcUaClient-014 | Low | Resolved | Performance & resource management | OpcUaClientDriver.cs:1138, :1314 |
| Driver.S7-003 | Low | Resolved | Correctness & logic bugs | S7Driver.cs:172, S7Driver.cs:255 |
| Driver.S7-005 | Low | Resolved | OtOpcUa conventions | S7Driver.cs:33, S7Driver.cs:433 |
| Driver.S7-009 | Low | Resolved | Error handling & resilience | S7Driver.cs:392 |
| Driver.S7-010 | Low | Resolved | Performance & resource management | S7Driver.cs:504 |
| Driver.S7-013 | Low | Resolved | Code organization & conventions | S7DriverOptions.cs:90, S7Driver.cs:300 |
| Driver.S7.Cli-004 | Low | Resolved | Performance & resource management | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.S7.Cli/Commands/ProbeCommand.cs:36,53, Commands/ReadCommand.cs:45,54, Commands/WriteCommand.cs:51,60, Commands/SubscribeCommand.cs:39,73 |
| Driver.S7.Cli-005 | Low | Resolved | Code organization & conventions | tests/ZB.MOM.WW.OtOpcUa.Driver.S7.Cli.Tests/ |
| Driver.S7.Cli-006 | Low | Resolved | Testing coverage | tests/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.S7.Cli.Tests/WriteCommandParseValueTests.cs |
| Driver.S7.Cli-007 | Low | Resolved | Documentation & comments | src/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.S7.Cli/Commands/SubscribeCommand.cs:45-51 |
| Driver.TwinCAT-004 | Low | Resolved | Correctness & logic bugs | TwinCATDataType.cs:24-27 |
| Driver.TwinCAT-006 | Low | Resolved | OtOpcUa conventions | TwinCATDriver.cs:406-411 |
| Driver.TwinCAT-014 | Low | Resolved | Design-document adherence | TwinCATDriverOptions.cs:41-43, TwinCATDriverOptions.cs:57-62, AdsTwinCATClient.cs:145 |
| Driver.TwinCAT-015 | Low | Resolved | Code organization & conventions | TwinCATDriver.cs:431-432 |
| Driver.TwinCAT-016 | Low | Resolved | Testing coverage | tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.Tests/ |
| Driver.TwinCAT.Cli-001 | Low | Resolved | Correctness & logic bugs | TwinCATCommandBase.cs:23-24, Commands/SubscribeCommand.cs:23-24, Commands/BrowseCommand.cs:21-24 |
| Driver.TwinCAT.Cli-002 | Low | Resolved | Concurrency & thread safety | Commands/SubscribeCommand.cs:46-58 |
| Driver.TwinCAT.Cli-003 | Low | Resolved | Error handling & resilience | Commands/SubscribeCommand.cs:56-58 |
| Driver.TwinCAT.Cli-004 | Low | Resolved | Design-document adherence | TwinCATCommandBase.cs:26-29, Commands/BrowseCommand.cs |
| Driver.TwinCAT.Cli-005 | Low | Resolved | Code organization & conventions | Commands/ProbeCommand.cs:23, Commands/ReadCommand.cs:20, Commands/WriteCommand.cs:20, Commands/SubscribeCommand.cs:18 |
| Driver.TwinCAT.Cli-006 | Low | Resolved | Testing coverage | tests/Drivers/Cli/ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.Cli.Tests/WriteCommandParseValueTests.cs |
| Driver.TwinCAT.Cli-007 | Low | Resolved | Documentation & comments | TwinCATCommandBase.cs:31-36 |
| Server-004 | Low | Resolved | OtOpcUa conventions | src/Server/ZB.MOM.WW.OtOpcUa.Server/OpcUa/OtOpcUaServer.cs:187-200 |
| Server-006 | Low | Resolved | Concurrency & thread safety | src/Server/ZB.MOM.WW.OtOpcUa.Server/OpcUa/DriverNodeManager.cs:478-482, 1342-1348 |
| Server-008 | Low | Resolved | Error handling & resilience | src/Server/ZB.MOM.WW.OtOpcUa.Server/OpcUa/DriverNodeManager.cs:736 |
| Server-012 | Low | Resolved | Performance & resource management | src/Server/ZB.MOM.WW.OtOpcUa.Server/Hosting/PeerHttpProbeLoop.cs:78-79 |
| Server-014 | Low | Resolved | Code organization & conventions | src/Server/ZB.MOM.WW.OtOpcUa.Server/SealedBootstrap.cs |
| Server-015 | Low | Resolved | Documentation & comments | src/Server/ZB.MOM.WW.OtOpcUa.Server/OpcUa/OtOpcUaServer.cs:16-21, src/Server/ZB.MOM.WW.OtOpcUa.Server/OpcUa/OpcUaServerOptions.cs:21-26 |