Skip to content

M2.14: recover bound SCL GOOSE and report-observed TapChg parent - #582

Draft
masarray wants to merge 2 commits into
fix/m214-field-acceptance-ci-angle-20261015from
fix/m214-bound-goose-and-tapchg-evidence-20261015
Draft

masarray wants to merge 2 commits into
fix/m214-field-acceptance-ci-angle-20261015from
fix/m214-bound-goose-and-tapchg-evidence-20261015

Conversation

@masarray

Copy link
Copy Markdown
Owner

M2.14 field regression recovery — real GOOSE control directory & observed ST parent

Parent: verified green PR #581 at a9e6c1c4a4db (2,002 ARSAS tests; 19 pinned engine; 9 native CTest; 6 packaged tests). All parent work in #560–#581 remains Draft, stable and engine pin untouched.

Physical failure evidence

  • Attached IED SCL contains GoCB/DataSet but online MMS discovery may omit GoCB metadata. Browser picked LiveDiscoveryModel ?? Scl.DesignModel, discarding the existing exact per-device SCL GoCB declaration and showing GOOSE: No objects.
  • ZIV AVR DataSet ATCC1.TapChg [ST] stayed Not read despite independent real valWTr and posVal Report leaves already in canonical ledger. The display can only summarize model-proven, association-fenced leaves; never fabricate a parent sample.
  • Main window title omitted its compiled app version.

Implemented

  • New exact-domain, exact-GoCB reference resolver merges directory metadata only, prioritizes live inventory and supplements missing controls from the selected IED's SCL only when the online LD domain is present. No SCL metadata is reclassified as live GoEna or received GOOSE frame. Exact member directory can use selected SCL when live DataSet directory is missing; same frame identity and subscriber fencing.
  • A SCL-only GoCB cannot create speculative MMS control-state read targets. No auto-enable, subscribe, GI, write or polling.
  • Project multi-leaf ST DataSet process fields from exact selected SCL DO only when live directory is incomplete; values still come exclusively from existing Report/Read observations in canonical ledger. No wrong FC, sibling or q/t inference. Existing whole-object evidence continues to win.
  • Window caption uses actual assembly informational version, strips build metadata but never invents a version.
  • Six regression tests for live-over-SCL precedence, missing GoCB, foreign-domain rejection, exact DataSet binding, restricted SCL-only Read, and mixed Report ST leaves from selected SCL. No changes to runtime transport, SCL parser, decoder, SSOT owner, or public release.

Deliberately separate work

Quality bit-level provenance, opt-in GI control UX, 9-tab navigation reorder plus SMV workspace, and control block SG live read semantics require separate authority/regression review. Never present unverified quality bits as real device state. Physical BCUGE/ZIV screen acceptance still required. Windows CI exact-SHA pending.

Copy link
Copy Markdown
Owner Author

Physical acceptance matrix / cross-thread SSOT handoff (2026-10-15)

Exact integration order: #581 (green a9e6c1c4) → #582 (38ad98f74c97, Windows Build #38708011743 PASS, 2,008 app + 19 pinned engine + 9 native + 6 packaged; portable artifact 11958889714) → #583 (user-requested three icons, Windows CI ongoing). All PRs remain Draft, main/public stable and pin untouched.

Observed defects that #582 targets:

  1. GOOSE root previously skipped attached bound SCL GoCB declarations when live discovery returned a partially populated model. Exact matched domain/reference SCL-only directories now appear without fabricating live GoEna, received frames or MMS control authorizations.
  2. ATCC1.TapChg [ST] remained 'Not read' despite valWTr and posVal Report leaves. Exact bound SCL ST schema can now supply missing view descriptors; only already received canonical observations populate the compound parent.
  3. Main window version uses compiled assembly informational version.

Still OPEN / cannot be called field-accepted: real BCUGE GOOSE GoCB count and DataSet ordering; passive GOOSE frame identity; ZIV compound TapChg parent after Read/Report; quality-detail q raw-byte parity across Report vs MMS Read, association and timestamps; pre-Read SG semantic status; FC=CF engineering units/multiplier; true 9-destination navigation with real SMV workflow (currently viewer window), and opt-in safe GI. Do not attempt GI/SG writes or invent unobserved values.

Required real relay checks: GOOSE tab shows model/SCL declared controls without turning on subscriber automatically; SCL-only control reads stay unavailable; TapChg is labelled from observed fields; SG values only appear after actual explicit Read and stale/offline status is accurate; q bits are cross-checked with raw MMS quality evidence before asserting discrepancies; no scalar angle; metadata provenance attached. CI passing is not physical acceptance.

Please base future Browser changes on the newest green descendant, never edit older parent PR branches concurrently and never cherry-pick divergent UI changes blindly.

This branch has not been deployed

No deployments
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