Skip to content

BCUGE operator fix: remove misleading GOOSE Quality column, show exact raw DataSet entries - #510

Closed
masarray wants to merge 2 commits into
fix/509-bcuge-quality-ied-scope-multigrid-sortfrom
fix/510-goose-raw-dataset-inspector-no-quality
Closed

masarray wants to merge 2 commits into
fix/509-bcuge-quality-ied-scope-multigrid-sortfrom
fix/510-goose-raw-dataset-inspector-no-quality

Conversation

@masarray

@masarray masarray commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Explicit field feedback after #509

Real BCUGE + reference packet inspector screenshot comparison proves Quality projection in #509 remains wrong. The operator requests discarding the Quality column rather than repeated speculative stVal/q synthesis. reference packet inspector shows four ordered FCDA entries (stVal,q,stVal,q) with typed q as a normal value. This is the acceptance target, not artificially two rows with Good.

Scoped change, based on exact #509 validated SHA 460e41bed7cf2dba162a51b1ebf3a8457d102a5e

  • In active Views/GooseSubscriberLiteView.xaml: change inspector heading to DataSet entries, bind table to SelectedGooseStream.Leaves instead of engineering shadow projection, remove Quality column and styling; retain only Signal and Value. Keep tooltip/source references and colored change highlight.
  • In GooseStreamRow.Apply: stop computing/maintaining the duplicate EngineeringLeaves UI collection. Single source of truth is original typed ordered wire leaves.
  • Header counter is literal raw leaf count (e.g. 4 entries), no fabricated engineering signal count.
  • Update existing presenter assertion; add runtime-snapshot + actual active-XAML regression tests ensuring BCUGE four raw leaves retain correct order/values, no Quality heading or projection, and frame DataSet member count preserved.
  • Preserve all P8 BCUGE: real Quality column, selected/all GOOSE scope and 3-grid IEC natural sorting #509 numeric IEC sorts, Selected IED/All scope, GOOSE capture/timeline policy, static MMS/RCB, engine pin, control/SNTP, and raw wire state. No new model inference or stale hidden display column.

Only 5 scoped files in one commit. No manual CI dispatch. Require exact SHA Windows Build ARSAS, tests, publish/smoke; keep draft until actual GE BCUGE operator confirmation. R10 mainline guard stays unchanged; no main merge/release.

Copy link
Copy Markdown
Owner Author

CI qualification — exact final head

Commit: c0f4445f0d1c28eb2a76d6b5a01aa2b8a115438b (two commits on top of validated #509). This is an explicit product UX simplification, not another Quality inference attempt.

  • Build ARSAS Windows x64 #38054333903 — SUCCESS: source cleanliness and rejection fixtures, full ARSAS application regression, Windows portable single EXE publish, actual executable smoke, artifact upload.
  • Download exact-head Windows portable artifact #11670514015.
  • Production Promotion Guard, field build, golden provenance/budget/stability, merge execution and SV evidence all SUCCESS. R10 Mainline Readiness remains blocked as designed; do not bypass it.
  • The initial CI attempt was rejected by source-clean because the PR description contained a forbidden third-party identifier. The description was cleaned, and a source-level acceptance comment was added to lock the actual two-column DataSet contract. Exact final revision passed the same source-clean policy and full CI. No workflow was manually rerun.
  • Active operator view binds SelectedGooseStream.Leaves (original ordered FCDA entries) to only Signal + Value; the Quality column is gone. .q remains visible as an original typed entry, e.g. CSWI6.Pos.q = Good. Duplicate engineering projection is no longer executed by GooseStreamRow.Apply; the signal counter is raw entry count, not a guessed engineering count.
  • No modifications to GOOSE packet decoder/raw capture, event filtering, IEC sorting, static RCB reporting, SNTP or control path. Engine unchanged.

Keep DRAFT until operator confirms four entries with correct names and typed values on physical BCUGE. Do not merge/release automatically.

Copy link
Copy Markdown
Owner Author

Disposition: Superseded — administrative consolidation of a verified commit-ancestry milestone, not a merge into main or physical acceptance.

Canonical replacement: #543 (head 6285867780b8ea79c231d72a3819e9e5f99748d2; stays OPEN for staged integration). This PR head c0f4445f0d1c28eb2a76d6b5a01aa2b8a115438b is an exact Git ancestor of #543 head: GitHub compare old-head...canonical-head = ahead, ahead=223, behind=0.

Unique delta: raw GOOSE DataSet display without manufactured Quality column; 5 changed files, including GooseWireDataSetInspectorRegressionTests.cs and GooseEngineeringPresentationRegressionTests.cs. No original commits from this PR are omitted from #543's commit ancestry; the original branch and historical patch/tests remain recoverable. The final tree's semantic equivalence and physical qualification are not claimed by ancestry alone: these are follow-up requirements at the canonical tip.

Safety: Close only the redundant intermediate PR conversation, do not delete any branch. No code edits, no engine repin, no change to main, stable v1.6.42, checksums or safety/CI gates. This particular PR is not the remaining integration gate.

Follow-up: Ensure the canonical GOOSE inspector preserves raw wire truth and never invents Quality; perform qualification at consolidated candidate. Track unfinished acceptance and missing behaviors via #543 or the later authoritative integration/qualification workstream; do not merge #543 to main without required gates.

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