Skip to content

Operator UX lift: real Ua zero-cross scope, actionable GOOSE empty state, concise SCL and diagnostics #148

Operator UX lift: real Ua zero-cross scope, actionable GOOSE empty state, concise SCL and diagnostics

Operator UX lift: real Ua zero-cross scope, actionable GOOSE empty state, concise SCL and diagnostics #148

Triggered via pull request October 17, 2026 22:43
Status Success
Total duration 2m 0s
Artifacts 1

candidate-package.yml

on: pull_request
Build verified Windows x64 candidate
1m 50s
Build verified Windows x64 candidate
Fit to window
Zoom out
Zoom in

Annotations

20 warnings
Build verified Windows x64 candidate: src/ProcessBus.App.Wpf/ViewModels/MainWindowViewModel.cs#L4698
Use 'string.StartsWith(char)' instead of 'string.StartsWith(string)' when you have a string with a single char (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1865)
Build verified Windows x64 candidate: src/ProcessBus.App.Wpf/ViewModels/MainWindowViewModel.cs#L4678
The behavior of 'int.ToString()' could vary based on the current user's locale settings. Replace this call in 'GooseTrafficRow.DatasetEntryCountText.get' with a call to 'int.ToString(IFormatProvider)'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1305)
Build verified Windows x64 candidate: src/ProcessBus.App.Wpf/ViewModels/MainWindowViewModel.cs#L4674
The behavior of 'DateTime.ToString(string)' could vary based on the current user's locale settings. Replace this call in 'GooseTrafficRow.EntryTimeText.get' with a call to 'DateTime.ToString(string, IFormatProvider)'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1305)
Build verified Windows x64 candidate: src/ProcessBus.App.Wpf/ViewModels/MainWindowViewModel.cs#L4629
The behavior of 'DateTime.ToString(string)' could vary based on the current user's locale settings. Replace this call in 'GooseTrafficRow.TimeText.get' with a call to 'DateTime.ToString(string, IFormatProvider)'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1305)
Build verified Windows x64 candidate: src/ProcessBus.App.Wpf/ViewModels/MainWindowViewModel.cs#L5143
Prefer 'static readonly' fields over constant array arguments if the called method is called repeatedly and is not mutating the passed array (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1861)
Build verified Windows x64 candidate: src/ProcessBus.App.Wpf/Controls/PhasorDiagramControl.cs#L81
In member void PhasorDiagramControl.OnRender(DrawingContext dc), change parameter name dc to drawingContext in order to match the identifier as it has been declared in void UIElement.OnRender(DrawingContext drawingContext) (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1725)
Build verified Windows x64 candidate: src/ProcessBus.App.Wpf/Controls/WaveformPanelControl.cs#L179
Do not use Enumerable methods on indexable collections. Instead use the collection directly. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1826)
Build verified Windows x64 candidate: src/ProcessBus.App.Wpf/Controls/WaveformPanelControl.cs#L177
Do not use Enumerable methods on indexable collections. Instead use the collection directly. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1826)
Build verified Windows x64 candidate: src/ProcessBus.App.Wpf/MainWindow.xaml.cs#L143
The behavior of 'int.ToString()' could vary based on the current user's locale settings. Replace this call in 'MainWindow.UpdateWorkspaceActivePill(bool)' with a call to 'int.ToString(IFormatProvider)'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1305)
Build verified Windows x64 candidate: src/ProcessBus.App.Wpf/Controls/WaveformPanelControl.cs#L158
In member void WaveformPanelControl.OnRender(DrawingContext dc), change parameter name dc to drawingContext in order to match the identifier as it has been declared in void UIElement.OnRender(DrawingContext drawingContext) (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1725)
Build verified Windows x64 candidate: src/ProcessBus.Iec61850.Raw/Analysis/RawProcessBusAnalyzer.cs#L312
The behavior of 'uint.ToString()' could vary based on the current user's locale settings. Replace this call in 'RawProcessBusAnalyzer.ResolveSvMappingProfile(ProcessBusFrame, SampledValueAsdu)' with a call to 'uint.ToString(IFormatProvider)'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1305)
Build verified Windows x64 candidate: src/ProcessBus.Iec61850.Raw/Analysis/RawProcessBusAnalyzer.cs#L311
The behavior of 'ushort.ToString()' could vary based on the current user's locale settings. Replace this call in 'RawProcessBusAnalyzer.ResolveSvMappingProfile(ProcessBusFrame, SampledValueAsdu)' with a call to 'ushort.ToString(IFormatProvider)'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1305)
Build verified Windows x64 candidate: src/ProcessBus.Iec61850.Raw/Replay/PcapReplayReader.cs#L12
Use 'ArgumentOutOfRangeException.ThrowIfLessThan' instead of explicitly throwing a new exception instance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1512)
Build verified Windows x64 candidate: src/ProcessBus.Iec61850.Raw/Replay/ProcessBusReplaySession.cs#L36
Method Replay passes 'MaximumFrames' as the paramName argument to a ArgumentOutOfRangeException constructor. Replace this argument with one of the method's parameter names. Note that the provided parameter name should have the exact casing as declared on the method. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2208)
Build verified Windows x64 candidate: src/ProcessBus.Iec61850.Raw/Runtime/SvRuntimeSnapshot.cs#L169
Use 'ArgumentOutOfRangeException.ThrowIfNegative' instead of explicitly throwing a new exception instance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1512)
Build verified Windows x64 candidate: src/ProcessBus.Iec61850.Raw/Analysis/RollingJitterWindow.cs#L23
Use 'ArgumentOutOfRangeException.ThrowIfNegativeOrZero' instead of explicitly throwing a new exception instance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1512)
Build verified Windows x64 candidate: src/ProcessBus.Core/Models/PtpEventItem.cs#L6
The behavior of 'DateTime.ToString(string)' could vary based on the current user's locale settings. Replace this call in 'PtpEventItem.TimeText.get' with a call to 'DateTime.ToString(string, IFormatProvider)'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1305)
Build verified Windows x64 candidate: src/ProcessBus.Core/Services/PcapAdapterCatalog.cs#L128
Specify marshaling for P/Invoke string arguments (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2101)
Build verified Windows x64 candidate: src/ProcessBus.Core/Services/PcapAdapterCatalog.cs#L58
The behavior of 'int.ToString()' could vary based on the current user's locale settings. Replace this call in 'PcapAdapterCatalog.GetAdaptersCore()' with a call to 'int.ToString(IFormatProvider)'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1305)
Build verified Windows x64 candidate: src/ProcessBus.Core/Services/Scl/SclSemanticParser.cs#L9
Member 'Load' does not access instance data and can be marked as static (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1822)

Artifacts

Produced during runtime
Name Size Digest
ProcessBusInsight-v1.4.0-beta.2-win-x64-candidate-148
93.7 MB
sha256:d65da72fb8be236979d0f8386a17154854b195e91a2b1747e44c01bc94ba4944