From e9451e08d51b2415e6377b80a3ba1f91f657bc26 Mon Sep 17 00:00:00 2001 From: Ari Sulistiono Date: Sun, 18 Oct 2026 06:48:46 +0700 Subject: [PATCH 1/3] fix(scl): concise operator identity comparison; retain complete technical binding evidence --- .../ViewModels/MainWindowViewModel.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/ProcessBus.App.Wpf/ViewModels/MainWindowViewModel.cs b/src/ProcessBus.App.Wpf/ViewModels/MainWindowViewModel.cs index 4b15489f..8f9c4117 100644 --- a/src/ProcessBus.App.Wpf/ViewModels/MainWindowViewModel.cs +++ b/src/ProcessBus.App.Wpf/ViewModels/MainWindowViewModel.cs @@ -1363,8 +1363,11 @@ public SclStreamCatalogRow? SelectedSclStreamCatalog ?? "Binding pending"; public string SclSelectedVerdictText => SelectedSclBindingMatrixRow?.OperatorVerdictText ?? "Select a stream to inspect its live identity."; - public string SclSelectedVerdictDetailText => SelectedSclBindingMatrixRow?.OperatorEvidenceText - ?? "Compare the selected SCL stream with captured publisher identity."; + // One scan-friendly identity comparison. Full correlation evidence is + // available in the expanded technical details and copy evidence command. + public string SclSelectedVerdictDetailText => SelectedSclBindingMatrixRow is { } row + ? $"Expected: {row.ExpectedName} → Observed: {row.ObservedName}" + : "Select a stream for expected versus observed identity."; public string SclSelectedExpectedText => SelectedSclBindingMatrixRow?.ExpectedDetailText ?? SelectedSclStreamCatalog?.TransportText ?? "No expected stream selected"; @@ -5054,6 +5057,15 @@ public sealed class SclBindingMatrixRow : INotifyPropertyChanged public string ExpectedMetaText => string.Join(" - ", new[] { IedName, AppIdText, VlanText }.Where(x => !string.IsNullOrWhiteSpace(x))); public string ObservedMetaText => string.IsNullOrWhiteSpace(LiveKey) ? "Not seen on selected adapter" : string.Join(" - ", new[] { AppIdText, VlanText }.Where(x => !string.IsNullOrWhiteSpace(x))); public string EvidencePrimaryText => SplitEvidence(EvidenceText).Primary; + public string CompactEvidenceText => OperatorVerdictText switch + { + "MISMATCH · svID differs" => "svID differs", + "MATCHED · observed identity agrees" => "Identity match", + "MATCHED · design warning" => "Design warning", + "NOT OBSERVED · expected stream" => "Not observed", + "UNEXPECTED · not defined in SCL" => "Unexpected stream", + _ => StatusText + }; public string EvidenceSecondaryText => SplitEvidence(EvidenceText).Secondary; public string SignatureText => $"{BindingKey}:{StatusText}:{ObservedName}:{Score}:{EvidenceText}"; From 44ec8f56b5df7b8ad2f3a09aaa6592d0ddb32b74 Mon Sep 17 00:00:00 2001 From: Ari Sulistiono Date: Sun, 18 Oct 2026 06:50:39 +0700 Subject: [PATCH 2/3] fix(ui): remove empty diagnostic footer and redundant scale expander; clean timing panel borders and spacing --- src/ProcessBus.App.Wpf/MainWindow.xaml | 94 ++++++++++---------------- 1 file changed, 37 insertions(+), 57 deletions(-) diff --git a/src/ProcessBus.App.Wpf/MainWindow.xaml b/src/ProcessBus.App.Wpf/MainWindow.xaml index 95e4d51d..0a050bb8 100644 --- a/src/ProcessBus.App.Wpf/MainWindow.xaml +++ b/src/ProcessBus.App.Wpf/MainWindow.xaml @@ -2394,18 +2394,7 @@ ToolTip="{Binding PowerFactorText}"/> - - - - - - + @@ -2425,9 +2414,9 @@ - + - + @@ -2505,7 +2494,7 @@ + VerticalAlignment="Center" Margin="0,0,12,0"/> @@ -2618,8 +2607,8 @@ @@ -2696,8 +2685,8 @@ @@ -2855,8 +2844,8 @@ + BorderThickness="0" CornerRadius="8" Padding="12,10" + Margin="0,0,0,12">