Repository navigation
Conversation
…t NIC selection, declutter command dock
…show changed values for 3s
…d permit unbound listening
…and command grid spacing
Exact-head 2026-10-10 field UX candidate — build validatedHEAD Build ARSAS #38003596158 SUCCESS: native WPF compilation, regression 1,446 passed / 0 failed / 0 skipped, portable win-x64 single EXE publication, executable smoke test, artifact upload. Exact artifact #11650885130. SCL Interoperability R7, Field Capture, provenance, golden budget, repeat-run, SV bundle, merge execution, production promotion and reference guards: SUCCESS. Mainline Readiness deliberately FAILS for the still-unqualified P7.6G engine/physical branch; no bypass, merge or public release. Root fix: actual card GOOSE pill from Presentation: two-column Messages + Inspector, no narrow publisher sidebar, actual publisher selection through message row. The default filters identical retransmissions and recurring static Pending operator GUI acceptance (not claimed by CI): visible pill navigates to GOOSE, selecting |
|
Disposition: Superseded — evidence-backed consolidation of an intermediate stacked milestone; no code merge to main. Canonical replacement: #543, still OPEN, head Unique delta: GOOSE card/navigation, NIC auto-start and event inspector first UX milestone. Patch audit: 13-file patch including GooseTimelineEventPolicyTests.cs and FastWorkflowRegressionTests.cs. Original code, unit/regression test patches and commit history remain recoverable from both this branch and the canonical descendant. The descendant's current runtime semantics must still be qualified; ancestry is not a substitute for that test. Safety: This closes an intermediate tracking PR, not its source branch, CI gates or evidence. Accepted v1.6.42 binaries/tag, Follow-up: The event model and UI were subsequently extended by #499 and descendants. Re-check GOOSE capture/source truth and physical behavior on the eventual integration branch. Any remaining work is retained under #543 and the newer release-gated integration chain. |
Operator field finding (GE F650) and corrected implementation
Underlying root cause: the visible GOOSE capability pill is created by
FaultRecordUxBehavior.cs, not the extra icon fromMainWindow.IedGooseQuickStart.cs. Its oldOpenGooseWorkspace()hard-coded tab 3 (Alarm). Prior PR #498 change fixed only the extra icon and therefore did not resolve the operator's reported CTA. The real pill now calls the sharedOpenIedGooseSubscriber, selecting tab 4.Required UX path: IED Explorer GOOSE pill → GOOSE Subscriber tab → operator explicitly chooses Npcap NIC (e.g. KM_Test when appropriate) → capture starts automatically, without an extra Start click. Binding and adapter refreshes cannot trigger the start: a one-shot routed AdapterConfirmed event from the actual ComboBox is required. Capture persists untouched if already running; leaving the GOOSE tab cancels unconsumed intent. Manual GOOSE tab navigation retains manual Start mode. An IED with no mapped GoCB may still use raw, read-only network capture; no guessed SCL is required.
IEC 61850 GOOSE behavior: preserves all EtherType 0x88B8/VLAN physical capture, counters, publisher per-stream state, decoder, binding and diagnostics. Presentation only: default Messages list suppresses identical
sqNumretransmissions even if a persistentTestflag is set; shows first publisher, new warning, actual payload change, stNum change or newly observed sequence anomaly. An opt-in “Show retransmissions” displays all. Payload differences whilestNumis unchanged are explicitly flagged rather than hidden. Matching signal leaves highlight for 3 seconds. Memory remains bounded by existing UI queue/event caps.Layout: IEDScout-style two-pane Messages left / Inspector right (publisher identity available per row), removing the narrow publisher sidebar. Command Dock removes redundant “Fast IEC 61850 Control” introduction, redundant prose and its Refresh Values/Edit Signals header controls, retaining real command grid and validation/interlock workflow.
Evidence: IEDScout capture compared to ARSAS: two GOOSE streams APPID 33/44 (0x0021/0x002C), 4 DataSet members in GOOSE2 matching CSWI6, CSWI7, eveGGIO Ind11/Ind13. The decoder is already correct; do not rewrite it. The field acceptance is usability and no-loss wire recording, not forced parity of captured packet counters in different capture windows.
Risk separation: stacked draft atop ARSAS #497 + #494; ARIEC61850 engine #157 and P7.6G pins unchanged. No MMS polling, dynamic DataSet writes, or control command regression. Synthetic tests cover unchanged test-flag retransmission and changed value with same stNum. Must pass exact-HEAD Windows compile, regression, publish + smoke and operator GUI validation before merging. Mainline physical gate stays closed.