Skip to content

M2.14 GUI: one IEC DO hierarchy with compact engineering values - #577

Closed
masarray wants to merge 1 commit into
ui/material-icons-consistency-20261015from
feat/m214-browser-engineering-hierarchy-20261015
Closed

masarray wants to merge 1 commit into
ui/material-icons-consistency-20261015from
feat/m214-browser-engineering-hierarchy-20261015

Conversation

@masarray

Copy link
Copy Markdown
Owner

M2.14 Engineering Browser — real object hierarchy, not raw FC dumps

Base: latest complete UI/Icon PR #575 head 7a761feecbda (includes Thread A #573, A/B semantic reconciliation #572, scalar-angle #570, SG live binding #569, and UI #571/#574). PR #576 remains a sibling UI branch; no direct writes to its files.

Field complaint reproduced from MMXU1 / DataSets screenshots

  • IEC A and PhV root rows dump huge concatenated phsA,phsB,phsC,neut,net,res previews, with verbose repeated provenance in the value column; the operator needs compact DO values plus expandable phase/FC detail.
  • The same structured phase appears as separate phsA [MX], phsA [CF], phsA [DC] peers. This is a schema projection failure: Functional Constraints are independent within a named engineering object, not separate top-level physical phases.
  • Discovery/SCL may split a single exact DO reference across FCs. The virtual tree and LN detail pane must agree on one DO identity; do not coalesce different exact reference/name.

Implemented

  • Schema-only IedBrowserEngineeringObjects.GroupExact groups duplicate DO declarations only by exact reference + name and retains each FC-qualified attribute, without mutating the engine canonical model, acquiring MMS or choosing arbitrary conflicting CDC.
  • One phsA / phsB / phsC structured row for cross-FC descendants; lazy expansion exposes independent cVal [MX], units [CF], d [DC]. No second grid or WPF tree, preserves existing ListView virtualization.
  • Full IEC three-phase DO row preview remains bounded to 3 declared principal phases when neutral/net/res branches exist; extra leaf evidence is still visible on expansion and through independent detail path, with pairing/timestamp/association checks untouched. Missing angle never becomes 0°.
  • Four focused tests for LN/tree agreement, DO identity/CDC conflicts, bounded root preview versus expanded neutral, and scalar MV no-angle regression. Existing cross-thread M2.14 regression updated for the intended concise DO preview.

Hard boundaries

No new polling, subscription, control action, reporting/GI, guessed units, RCB writes, model file changes, engine pin changes or public release. Preserve Thread A canonical SSOT and #575 UI icon work. Require exact SHA Windows CI and BCUGE/ZIV actual acceptance.

Copy link
Copy Markdown
Owner Author

Unified checkpoint — Material MainWindow and Browser M2.14 (handoff)

Copy link
Copy Markdown
Owner Author

Thread A continuation ownership / M2.14 integration checkpoint. Original Thread A chat reached its limit; continuation now uses verified latest PR #577 4be7b51b9040 (10/10 green; includes consolidated M2.13K stress, CF/phasor A+B, scalar no-angle, SG and Material icons). New draft PR #579 at 07b7b1820aebce84c63cf0f0f2d66cbd8cadc798 targets a measured live shortfall: exact ATCC1.TapChg [ST] DataSet parent stayed Not read despite observed valWTr=3 and posVal=3. Only projection-layer, model-proven ST field summaries added; no change to canonical SSOT, runtime Report ingest, read plans, pin or stable. Five focused tests; Windows CI currently running.

Conflict guard: #576 (sibling icon unification branch) diverged from #575; avoid assuming it is an ancestor of #577 or blindly cherry-picking icon modifications. Reconcile only proven missing UI behavior by comparison, keeping #577 as immutable base and #579 as descendant. No merge to main until Windows CI + physical BCUGE/ZIV acceptance. Remaining field issues: CF/unit evidence and GUI parity; avoid fake scalar angles or invented observations.

Copy link
Copy Markdown
Owner Author

M2.14 DataSet multi-leaf exact-SHA CI checkpoint PASS. Draft PR #579, head 07b7b1820aebce84c63cf0f0f2d66cbd8cadc798 (direct child of #577 green baseline), now has 10/10 workflows successful and Build ARSAS #38693234531 PASS: ARSAS 1,993/1,993, pinned ARIEC 19/19, native CTest 9/9, packaged managed 6/6, Windows portable sealed artifact ARSAS-win-x64-portable-single-exe ID 11953840136 matches exact HEAD and is not expired.

Verified code behavior: exact TapChg [ST] FCD with model-proven independently observed valWTr/posVal now shows valWTr: 3; posVal: 3 rather than an unbound Not read; partially observed and stale state are identified, received parent FCD beats a summary, wrong-FC/sibling/FCDA values excluded, association fencing retained. Browser projection only; no SSOT, MMS acquisition, engine pin, reporting or public stable modifications. Physical ZIV AVR field test and wider GUI parity still pending.

Thread A continuity: the original chat reached its length limit. New independent work should anchor on #579 for Browser DataSet evidence, not overwrite #577/#575 or blindly merge the divergent #576 icon sibling.

Copy link
Copy Markdown
Owner Author

BCUGE/ZIV physical GUI feedback — new downstream draft PR #580, head 4be1a51d7d25f92a6403f839fc085982d84101ca stacked on CI-green #579, with Windows CI running.

Root causes addressed in this checkpoint: 8-tab nav clipped due runtime width clamp (not XAML alone); operator's IEC wireless and Live monitor SVGs now referenced from native WPF resources; independent angle/magnitude warning moved out of Value cells to provenance while ∠ stays reserved for actually matched samples; normative IEC 61850-7-3 Vector.ang uses ° for model-proven MX cVal/instCVal fields, never scalar MV; live-discovery SG inventory missing but exact-domain SCL SG/SE metadata can be displayed with SCL-only label, without authorizing speculative MMS reads or treating SE as active SG.

All prior canonical live/Report/RCB/GOOSE logic, engine lock and static reports remain unchanged. Exact-SHA CI and physical BCUGE/ZIV still required before promotion. Owner note: do not independently patch the ancestor icon/nav files; follow #580 after CI unless a branch-wide reconciliation is proven necessary.

Copy link
Copy Markdown
Owner Author

D11 source+regression unique-delta audit — KEEP OPEN (phasor/timestamp UX divergence)

Original HEAD 4be7b51b9040a7a5f1d8ecaa1d90bbc1a3b9d081 is ancestor of protected integrated RC 817c3910e8223fa2ac531a4426ada5d2d4bbbe50 (ahead1374/behind0), but ancestry is not semantic equivalence.

All six changed paths inspected, old→RC Git blob SHA:

  • Models/IedBrowserEngineeringComposite.cs: 48ba62366bc2240b2243df34367d78e5164da8cf → 90c19fe2ff52c2c0bda6ae2379165bba20acd792. Typed scalar MV exclusion, phase composition and vector methods still present.
  • Models/IedBrowserEngineeringObjects.cs: exact identical blob 2b5ec785c3c82e4a290849f59476c4bc4f45332a, GroupExact grouping authority preserved.
  • Models/IedBrowserPresentation.cs: d572460a37e14dd1ea86ee51321f7948029b9c25 → 1b40ab6d53f7056944be507cefebc156054c2207; original Roots/Details/Expand/Collapse API remains, presentation evolved.
  • Models/IedBrowserStructuredDetails.cs: 5d7cf4ae48d4d51d7df25a4bf75c9c83b3243f3e → c86778db18d5c2db3769dc4af3b7895e2096ee02; DataObject/Member/DataSetMemberChildren exact-owner projection methods remain.
  • tests/ARSAS.Tests/M214EngineeringHierarchyUxTests.cs: b76a7d3c6f4894f315c4e241ae6d1bea819381a0 → fbf25c0fcd58e02946ff8aff27be9b4d3623ea28. All four test methods preserved, but 27/28 exact Assert statement lines remain; historical angle 0 (independent, not paired) expectation is missing/changed.
  • tests/ARSAS.Tests/M214MergedCfAndVectorAuthorityTests.cs: 5ee9b1e378659822a6f725a1e3e7aa897a7ec43f → e4f8c64cebb02d93719f151b46082d82f40de4e2. All three methods preserved, but 33/36 historical assertion lines remain: original suppression of ∠ 30 for mismatched time and Independent presentation labels have changed.

Disposition: KEEP OPEN, not closed/unmerged. Canonical carrier: current RC. Unique semantic delta: newer angle/provenance presentation no longer textually equivalent to earlier fail-closed time-pairing assertions; this is related to #570, #567 and measurement owner policy. Safety: never infer atomic phasor pairing from separate observations, never fabricate missing angle/quality/timestamp. Follow-up: phasor GUI owner to decide whether independent angles may appear only with explicit unpaired provenance versus withholding the glyph entirely, and verify deterministic real-device regression before closure. Do not revert newer GUI or cherry-pick older assertion blindly. #577 branch preserved.

Copy link
Copy Markdown
Owner Author

D27 close: all historical source commits already included in protected RC. GitHub ancestry 4be7b51b9040a7a5f1d8ecaa1d90bbc1a3b9d081..d4598619b1b8fc21487cf5beb83a8a8284d0e9cf reports ahead_by=1383, behind_by=0. This branch is no longer a distinct integration candidate; closing as absorbed into RC #727 rather than marking direct merge. Its content remains preserved in Git history, while mainline #729 and physical R7/R10 trial gates remain open.

@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