Skip to content

feat(goose): readable engineering Inspector, verified quality and stable DataSet details - #49

Merged
masarray merged 102 commits into
mainfrom
fix/goose-readable-engineering-ui-20261021
Oct 21, 2026
Merged

masarray merged 102 commits into
mainfrom
fix/goose-readable-engineering-ui-20261021

Conversation

@masarray

Copy link
Copy Markdown
Owner

Purpose

Deliver an original, electrical-engineer-focused GOOSE inspection workspace using generic engineering interaction patterns: readable two-column typed values, expandable raw MMS evidence and SCL-verified quality interpretation.

Stacked dependency: branch descends from the validated selection hotfix PR #48, commit 44ec3fc0e041cada0125ede07c8b7985d5434bee. Do not merge this PR independently of the GOOSE selection hotfix. The published v1.4.1 stable tag/assets remain untouched.

UI and workflow

  • Retain the existing compact 8-DIP GOOSE workspace and publisher selection model; allocate 460 DIP to a clear Inspector.
  • Replace a broken five-column DataSet DataGrid (fixed columns exceed available panel width) with compact, full-width signal / decoded value rows. Expanding each row shows full signal reference, verified MMS type, source, raw decoded value and original payload hex.
  • Stable keyed DataSet row projections preserve expanded details and scroll position across passive refresh and retransmission bursts; no WPF row collection resets for unchanged values.
  • Add an explicit Return to Live control when an event is pinned; timeline click remains historical evidence, publisher click remains live.
  • Make Timeline columns adapt to available width, with horizontal scroll rather than silently clipping essential evidence.

Evidence integrity

  • Quality flags only interpreted when an SCL-matched DataSet entry is explicitly marked q, with validated 13-bit MMS BIT STRING payload. Unmapped BitString retains raw meaning and hex; malformed/unsupported quality fails closed.
  • Correct initial event semantics: the first received DataSet is a baseline, not a fabricated set of changes.
  • No bare 10/01 to CLOSE/OPEN mapping in GUI. Semantic conversion remains only in SCL-matched CDC-aware formatter.
  • Changed-value coloring only reflects a comparison against a known previous observation; raw Boolean true/false is not presented as good/bad.
  • Frozen shared WPF brushes and bounded per-index reconciliation. No new timers, polling hacks, decode workers or capture-path changes.

Verification

  • Added positive/negative unit coverage for quality validity, asserted flags, raw/malformed rejection and initial baseline.
  • Required exact-SHA Windows CI, Runtime Stability, Runtime Architecture, CodeQL, Dependency review, and Windows Inno candidate package/repair gates (PR head only, avoid redundant workflow reruns).
  • Physical 100%/125%/150% DPI inspection, multi-publisher retransmission/selection and SCL-to-typed quality field acceptance still require operator screenshots/testing. Automated green is not physical interaction proof.

Do not publish a stable release or change v1.4.1 assets on this PR.

Copy link
Copy Markdown
Owner Author

Compact GOOSE UX — exact-SHA validation (candidate 300)

Head commit: d97620da39951bfb17f9871cf222038e7c4f2d35 on fix/goose-readable-engineering-ui-20261021. Draft PR, v1.4.1 released assets unchanged. This UI checkpoint is stacked on the previously validated GOOSE publisher-selection fix.

Delivered

  • Three independent Message / Network / Values accordion sections inside the Inspector, with restrained local WPF Material circle-chevron vector icons. The operator's expanded/collapsed preferences are stored in the ViewModel, surviving streaming updates and tab recreation. Defaults: Message and Values open; Network closed. The Inspector's sticky mode/status and Show Latest action remain outside the evidence scroll region.
  • One compact source search field using local Material vector search and X glyphs. X only appears for nonempty search, clears the existing filter, and restores input focus. The redundant message-name ComboBox and source footer were removed, without deleting existing search/filter internals.
  • Source ListView is height constrained in a Grid star row with independent vertical scrolling and VirtualizingPanel.IsVirtualizing/Recycling. Search and repeated-messages toggle remain visible above the list, including when 20+ sources are detected.
  • Reduced redundant copy: compact show-repeats label, short initial-event summary, concise sticky Inspector mode, compact source cards, no duplicate timeline filter chip, a small Identify signals action instead of a long paragraph. Raw MMS evidence and SCL-driven semantic safety unchanged.
  • No added polling, capture timers, external fonts/assets, or rendering animation; no changes to phasors, waveforms, PTP, 8-DIP geometry, or the publisher-selection engine.

Exact-SHA automated gate results — 6/6 PASS

Candidate ZIP artifact ProcessBusInsight-v1.4.2-win-x64-inno-candidate-300, ID 12320310983, includes ProcessBusInsight-v1.4.2-win-x64-setup.exe, manifest and SHA256SUMS. Independently checked manifest's commit equals d97620da39951bfb17f9871cf222038e7c4f2d35. SHA-256 extracted setup: 18eb65931bb72819aa21cd262cca81424b6e73d6742c790e007c11b54e58dd46 (matches SHA256SUMS). Installer is unsigned.

Physical operator acceptance still pending: real Windows 100/125/150% DPI; scroll through 20+ sources; type and clear search; expand/collapse each of three sections independently while GOOSE retransmissions arrive; switch publishers/pinned event → Show Latest; expand a typed-value row; check use of the loaded device configuration versus unmapped raw values. Green automation does not prove actual pixel geometry or mouse/keyboard behavior in the user's Windows environment.

Please keep the PR as Draft pending screenshots of this candidate. No stable release or merge was made.

Copy link
Copy Markdown
Owner Author

GOOSE terminology alignment — exact-SHA candidate 301

HEAD: 927346b00e173b3416601d839649562ace88e721, continuing the existing GUI hotfix branch on Draft PR #49. No merge/tag/stable release was created.

The receive-only GOOSE UI now uses the following established field terminology:

  • Capture: Messages, with Time, Relative time, Source, Destination, Description. The Description value is the original GOOSE control block reference; the small G marker retains the event classification in its tooltip.
  • Details: Control Block reference, Application ID, GOOSE ID, Status number, Sequence number, Entry time.
  • Network: Destination MAC address, Source MAC address, DataSet reference, VLAN ID, VLAN priority, Needs commissioning, Configuration revision, Simulation/Test, Time allowed to live (ms).
  • Data: Name and Value; generic wire types can appear as Bitstring 1, Bitstring 2, etc., with full MMS raw evidence in expanded details. A matching SCL signal reference takes precedence. No physical switching state is inferred without positively matched identity.
  • Relative time is correctly calculated in seconds from the first observed GOOSE message in the capture history, rather than reusing the previous-event gap. It is bounded nonnegative and independently tested; capture Clear resets the baseline.

The dark design, Material vector search/clear, virtualized left source list, three independent collapsible Inspector sections, event-vs-publisher selection SSOT, 8-DIP gutters, and SV/PTP/phasor/waveform remain unchanged.

Exact-SHA gates — all six SUCCESS

Candidate artifact: ProcessBusInsight-v1.4.2-win-x64-inno-candidate-301 (ID 12323690114), with exact commit 927346b00e173b3416601d839649562ace88e721 in candidate-manifest.json. Setup SHA-256 independently recomputed from downloaded ZIP and matched SHA256SUMS.txt: ce9ab3fd1b3c4d538ee3e047f9af7e0ce70004be8c33c7dd3100f763ebd29ddf.

Physical acceptance pending: confirm text labels, variable-length references, elapsed seconds, source/destination/description content, raw Bitstring fallback and matching-SCL meanings with a live Windows capture. Keep Draft pending operator approval. No external comparator brand/name was added to code, commits, docs or PR.

@masarray
masarray marked this pull request as ready for review October 21, 2026 13:05
@masarray
masarray merged commit d4fb825 into main Oct 21, 2026
8 checks passed
@masarray
masarray deleted the fix/goose-readable-engineering-ui-20261021 branch October 21, 2026 13:05
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-21T13:06:28.394218Z 927346b Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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