Skip to content

M2.14 IED Browser: collapsible RCB control and last-report sections - #599

Closed
masarray wants to merge 5 commits into
fix/m214-browser-per-attribute-read-failures-20261016from
feat/m214-browser-collapsible-report-sections-20261016
Closed

masarray wants to merge 5 commits into
fix/m214-browser-per-attribute-read-failures-20261016from
feat/m214-browser-collapsible-report-sections-20261016

Conversation

@masarray

Copy link
Copy Markdown
Owner

Operator feedback from BCUGE field GUI

RCB "Control Block attributes" and "Information received in last Report" were static headings; unlike the reference engineering UI, operators could not collapse the large groups.

Small reuse-only WPF fix

  • Attach expandable section descriptors at exact Section boundaries in the existing virtualized Browser detail projection, with report/GOOSE control and last-received sections expanded by default for no surprise data hiding.
  • Clicking the native section chevron or heading toggles only its own properties; no new panel, cached values, report subscription, or protocol read.
  • Existing canonical detail value refresh runs upon re-expansion; retains report evidence and sibling sections.
  • Keep flags, DataSet, object and raw Data sections unchanged.
  • Targeted regression checks default visibility, independent collapse/re-expand, preservation of reported values and untouched unrelated sections.

Base: PR #598; no engine pin, main or release change. Windows CI exact-SHA required. Separate ARIEC sidecar work in engine PR #170 is under review.

Copy link
Copy Markdown
Owner Author

D13 full-path historical source audit — KEEP OPEN: intentional report/GOOSE disclosure behavior changed

Original #599 head 70ad34392fd9da0e6851f2995f740e8fd8f80aed is ancestor of current protected RC 817c3910e8223fa2ac531a4426ada5d2d4bbbe50 (ahead1267/behind0). Compared all four changed paths, not merely ancestry:

  • MainWindow.xaml: old blob 3085e636d264eda299684423b91eaff65ef33ae0 → RC ee28dfe80e011740f72d114522f4311f8d852879; GUI/virtualized tree evolved.
  • Models/IedBrowserDetailSectionLayout.cs: 09b64c38069a59fb874aa59101250e6e0d14f289 → a14d6847c201d62084e7b729a95d13784600ca9f. Original ExpandByDefault=true for all three sections. RC deliberately collapses Information received in last Report and Information received in last GOOSE by default, retaining expanded RCB attributes, and treats Trigger options/Optional fields as children under the RCB attribute section rather than standalone roots. This is operator-visible UX behavior, not exact historical parity.
  • Models/IedBrowserPresentation.cs: 65ee75f118505f4d9aa7fb3d29bc4234dcbe2856 → 1b40ab6d53f7056944be507cefebc156054c2207; original section expand/collapse APIs still present; data authority remains canonical live ledger.
  • tests/ARSAS.Tests/M214BrowserCollapsibleReportSectionsTests.cs: 6ff2aa8afda2d0dbf594911cdf7652f797ad8e0e → 513a585cd370b1c9e6439aaa296f4eccf57f065d. Original three methods: two method names retained; original RcbSections_AreExpandedByDefault_AndOperatorMayCollapseIndependently changed, plus original Assert.True(received.IsExpanded), Assert.Equal(2, controls.GetChildren().Count) and exact Trigger options root assertion changed. 15/18 original Assert lines text-identical.
    Decision: KEEP M2.14 IED Browser: collapsible RCB control and last-report sections #599 OPEN; do NOT close unmerged without explicit Browser UX owner acceptance of collapsed-by-default Report/GOOSE and nested RCB TrgOps/OptFlds. Retain current RC, no blind cherry-pick/revert, no fabricated MMS/GOOSE evidence or GUI authority. M2.14 Browser: surface RCB discovery-state fields with exact provenance #594 exact RCB Not verified and M2.17-D Field convergence: GoCB passive evidence, SGCB initial status, RCB/Read correctness #606 seven-case GOOSE/SGCB remain independent field/owner gates.

Copy link
Copy Markdown
Owner Author

D15 historical source audit — KEEP OPEN pending canonical RCB UX acceptance

Historical HEAD 70ad34392fd9da0e6851f2995f740e8fd8f80aed is an ancestor of frozen RC 817c3910e8223fa2ac531a4426ada5d2d4bbbe50, ahead1267/behind0. All four original paths inspected by exact old→RC Git blob:

  • MainWindow.xaml: 3085e636d264eda299684423b91eaff65ef33ae0 → ee28dfe80e011740f72d114522f4311f8d852879.
  • Models/IedBrowserDetailSectionLayout.cs: 09b64c38069a59fb874aa59101250e6e0d14f289 → a14d6847c201d62084e7b729a95d13784600ca9f.
  • Models/IedBrowserPresentation.cs: 65ee75f118505f4d9aa7fb3d29bc4234dcbe2856 → 1b40ab6d53f7056944be507cefebc156054c2207. Original Reset/Reveal/Toggle/Expand/Collapse methods still present, but section layout rules evolved.
  • tests/ARSAS.Tests/M214BrowserCollapsibleReportSectionsTests.cs: 6ff2aa8afda2d0dbf594911cdf7652f797ad8e0e → 513a585cd370b1c9e6439aaa296f4eccf57f065d. 2/3 test methods still named identically, 15/18 original Assert statement lines identical. The nonidentical test is meaningful: historic RcbSections_AreExpandedByDefault_AndOperatorMayCollapseIndependently expected both Control Block and Last Report expanded, only 2 Control children; canonical RcbFlagsCollapseWithControlBlockWhileLastReportRemainsIndependent defaults Last Report collapsed, grouping Trigger options with Control Block (4 children) while preserving live child evidence. Current file explicitly documents User-requested default: passive last-Report metadata is collapsed.

Decision: KEEP OPEN for explicit RCB GUI owner acceptance, rather than claim old/default semantics and current UX are equivalent just because ancestry is linear. Newer default may be correct for user preference, but closing this historical carrier requires confirming the accepted replacement, not restoring obsolete expand defaults. No RCB Read/Write or subscriptions changed; no blind cherry-pick, branch removal, or RC/stable mutation. Related #594 operational RCB provenance is a separate safety gate. D15 command Refresh source work is independently stacked draft #756, unrelated to this view-only history.

Copy link
Copy Markdown
Owner Author

D27 PR consolidation — closed as already included in integrated RC, not recorded as a direct PR merge.

Exact ancestry proof: PR HEAD 70ad34392fd9da0e6851f2995f740e8fd8f80aed is an ancestor of current RC d2d0ca731061824102058756fba8599ddfa2342e (GitHub compare: ahead_by=1270, behind_by=0). No source commits from this PR are dropped. Its content is already staged in Integrated RC #727; eventual mainline promotion remains tracked under #729.

Closing this historical integration lane reduces duplicate open PRs without merging its old base into current RC. Physical IEC 61850 R7/R10 testing, open field issues, trial engine qualification, protected main and stable release retain their independent acceptance gates.

@masarray masarray closed this Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant