Single commit covering the four small/medium fixes from the updated code review. Core.Scripting-014 (Medium, Concurrency): CompiledScriptCache.Clear() used the key-only TryRemove(key, out var lazy) overload — same race shape Core.Scripting-006 closed in GetOrCompile's catch block. A concurrent re-add between snapshot and TryRemove was evicted + disposed while the new caller still held it. Replaced with the value-scoped TryRemove(KeyValuePair<,>) overload. Regression test Clear_uses_value_scoped_TryRemove_so_a_race_inserted_entry_survives added. Core.Scripting-013 (Medium, Security): Hand-rolled BuildWrapperSource pastes user source between literal braces; brace-balanced source could inject sibling methods/classes alongside CompiledScript.Run. Analyzer still walked the injected members so it wasn't a direct escape, but it relaxed the documented 'method body' authoring contract. Added EnforceSingleRunMember: after ParseText, the compilation unit must hold exactly one type (CompiledScript) and that type must hold exactly one member (the Run method). Any deviation throws CompilationErrorException with LMX001/ LMX002 diagnostic IDs and a Core.Scripting-013 reference in the message. Two regression tests added covering the sibling-method and sibling-class injection vectors. Core.Scripting-015 (Low, Correctness, latent): ToCSharpTypeName's generic branch truncated at the first backtick via IndexOf, silently dropping closed args of nested-generic shapes (Outer<T>.Inner<U>). No production caller exercises this shape today (all TContext/TResult are top-level non-nested), so the bug was latent. Rewrote the generic branch to walk the FullName segment-by- segment, consuming generic args per segment so nested shapes emit valid C# (global::Ns.Outer<T>.Inner<U> rather than the broken Outer<T,U>). Core.ScriptedAlarms-013 (Low, Documentation): The internal test accessors TryGetScratchReadCacheForTest / TryGetScratchContextForTest return live mutable scratch refilled in place under _evalGate. XML docs didn't warn future test authors about the synchronization contract. Added a <remarks> block to each documenting the only-safe-on-quiesced-engine + identity-or-single-key contract. Verification (suites green): Core.Scripting.Tests: 110/110 (was 107 — +3 new rejection/race tests) Core.ScriptedAlarms.Tests: 67/67 (unchanged — doc-only fix) Core.VirtualTags.Tests: 57/57 (unchanged) After this commit, all 12 findings from the updated re-review are closed (10 Resolved, 1 Won't Fix none, 1 Deferred — Driver.Galaxy-017). 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 | 0 | 13 |
| Core.Scripting | Claude Code | 2026-05-23 | a9be809 |
Reviewed | 0 | 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 | 0 | 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.
No pending findings.
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.Scripting-012 | High | Resolved | Security | ForbiddenTypeAnalyzer.cs:60-76, ScriptSandbox.cs:96-126 |
| 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.Scripting-013 | Medium | Resolved | Security | ScriptEvaluator.cs:202-225 (BuildWrapperSource) |
| Core.Scripting-014 | Medium | Resolved | Concurrency & thread safety | CompiledScriptCache.cs:91-103 (Clear) |
| Core.Scripting-016 | Medium | Resolved | 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 |
| 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.Galaxy-016 | Medium | Resolved | Performance & resource management | ZB.MOM.WW.OtOpcUa.Driver.Galaxy.csproj:43-47, libs/README.md:32-37 |
| 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.ScriptedAlarms-013 | Low | Resolved | Documentation & comments | ScriptedAlarmEngine.cs:66-81 |
| 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.Scripting-015 | Low | Resolved | Correctness & logic bugs | ScriptEvaluator.cs:234-270 (ToCSharpTypeName) |
| 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.Galaxy-017 | Low | Deferred | Design-document adherence | src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/ (no source change), gateway proto contract |
| Driver.Galaxy-018 | Low | Resolved | Documentation & comments | libs/README.md:32-37, ZB.MOM.WW.OtOpcUa.Driver.Galaxy.csproj:40-47 |
| 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 |
| Driver.Galaxy-015 | Resolved | libs/MxGateway.Client.dll, libs/MxGateway.Contracts.dll, libs/README.md |