GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — fix(goose): stable publisher selection, coherent live inspector and v1.4.2 hotfix by masarray · Pull Request #48 · masarray/DigSubAnalyzer

Conversation

@masarray

@masarray masarray commented Oct 20, 2026

Copy link
Copy Markdown
Owner

Scope / provenance

  • Based on unchanged main SHA 561bf69a5cceee76d66b46350decea1e7da7593d, published v1.4.1.
  • Isolated v1.4.2 hotfix candidate; v1.4.1 tag and release artifacts remain untouched.
  • Operator screenshots/handoff: single-click GOOSE publisher selection releases under snapshots; DataSet Inspector flickers/empties, timeline/publisher mix historical/live state.

Code-level root cause addressed

  • Snapshot producer returns new cloned GooseMessageItem objects each snapshot; WPF ListView was bound to fully replaced IReadOnlyList and SelectedItem to a short-lived object. View recreation/null feedback could clear selection.
  • Timeline selected-item setter also wrote publisher selection and unconditional collection-view Refresh() reset the DataGrid.
  • Inspector network metadata came from a timeline event while DataSet values came from a different live publisher frame.
  • Raw analyzer originally indexed publishers by GoCbRef alone; multiple physical publishers with the same control-block reference could coalesce.

Implementation

  • Stable GoosePublisherKey: source MAC + APPID + VLAN + exact GoCBRef (fallback GoID/DataSet only if no GoCBRef); excludes stNum/sqNum/last-seen.
  • Bounded keyed incremental ObservableCollection<GoosePublisherRow> with persistent row instances and change-specific property notifications.
  • Selected publisher key is the single source for its latest frame; WPF transient null is not an operator Clear.
  • Publisher click chooses Live latest coherent snapshot. Timeline click explicitly pins historical event. Timeline events are not allowed to mutate publisher selection; pure collection additions do not force view resets.
  • STALE state holds selected publisher's last decoded typed DataSet; explicit Clear removes selection. Filter options only change when available identities change.
  • Engine's raw GOOSE state key now separates same GoCBRef from distinct source MACs.
  • Regression: 1000 retransmissions without row recreation; same GoID multi-source/VLAN; alternating traffic; temporary disappearance/recovery; state-number changes; explicit Clear; bounded 500-source churn; raw same-GoCb distinct-MAC test.
  • No changes to 8-DIP layout, SV phasor, waveforms or PTP path.

Verification matrix

Automated: Windows CI, Runtime Stability, Runtime Architecture, CodeQL, candidate Windows/Inno install + repair, repository health at exact PR HEAD SHA. Runs are required before approval; a green CI does not constitute mouse-click proof.

Manual Windows acceptance still required: sustained real GOOSE stream, single click at 100%, 125%, 150% DPI; retransmissions OFF/ON; multiple publishers; changes of filter/search; select timeline then publisher; STALE/recovery; matching/missing SCL. Verify About BuildInfo exact commit and installed executable hash against candidate manifest.

CI efficiency

One focused PR branch (no redundant branch builds), version reserved pre-PR so the Inno package gate won't fail on the already-published v1.4.1. Normal concurrency cancellation handles superseded SHA builds; rerun only failed jobs after code changes. No release tagging or auto-merge.

Do not merge/release as validated until workflows are green and field selection acceptance is recorded.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

chatgpt-codex-connector[bot] reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
masarray added 21 commits October 21, 2026 05:23
@masarray
test(goose): introduce stable keyed publisher reconciliation and dete…
87c619f
…rministic burst tests
@masarray
test(goose): introduce stable keyed publisher reconciliation and dete…
db1c609
…rministic burst tests
@masarray
fix(goose): preserve keyed publisher selection and independent cohere…
6d5244f
…nt inspector mode
@masarray
fix(goose): bind stable publisher rows and inspector to one live or h…
508fbdd
…istorical snapshot
@masarray
fix(goose): distinguish same GoCB on different physical LAN sources i…
27d6932
…n raw state store
@masarray
test(goose): assert raw publisher separation for identical GoCBRef on…
50087af
… distinct source MACs
@masarray
chore(release): reserve v1.4.2 hotfix candidate without modifying pub…
caeb8d6
…lished v1.4.1
@masarray
chore(release): reserve v1.4.2 hotfix candidate without modifying pub…
b75957e
…lished v1.4.1
@masarray
chore(release): reserve v1.4.2 hotfix candidate without modifying pub…
22cfc03
…lished v1.4.1
@masarray
chore(release): reserve v1.4.2 hotfix candidate without modifying pub…
d8e7732
…lished v1.4.1
@masarray
docs: describe v1.4.2 GOOSE selection hotfix candidate and field acce…
a85b5ab
…ptance
@masarray
refactor(goose): derive selected live frame solely from keyed catalog…
3218b2d
… and remove timeline view resets
@masarray
fix(goose): preserve case-sensitive GoCB identity and align unknown-r…
f03b635
…ef fallback
@masarray
fix(goose): align catalog fallback identity with receive-engine proto…
8845b78
…col key
@masarray
fix(goose): validate stale/live coexistence and honor repeat-click se…
a9ac452
…lection intent
@masarray
fix(goose): validate stale/live coexistence and honor repeat-click se…
91042a2
…lection intent
@masarray
fix(goose): validate stale/live coexistence and honor repeat-click se…
4642a0d
…lection intent
@masarray
feat(goose): make explorer filtering deterministic without changing s…
abbfd8d
…elected publisher identity
@masarray
fix(goose): filtered explorer view preserves keyed user selection
8daf806
@masarray
fix(goose): bind filtered publisher view without resetting stable row…
5c161bb
… instances
@masarray
test(goose): cover search and GoID filter misses while stable selecti…
44ec3fc
…on stays live
@masarray ChatGPT Codex Connector

masarray commented Oct 20, 2026

Copy link
Copy Markdown
Owner Author

Exact-SHA validation — v1.4.2 GOOSE selection hotfix candidate

PR HEAD: 44ec3fc0e041cada0125ede07c8b7985d5434bee (source branch fix/goose-publisher-selection-ssot-20261021; base main 561bf69a5cceee76d66b46350decea1e7da7593d).

All six checks completed SUCCESS for this exact SHA:

  • Windows CI: repository health, WPF 8-DIP geometry, build, 193 passed / 0 failed / 0 skipped.
  • Runtime architecture: PASS.
  • Runtime stability: PASS.
  • CodeQL: PASS.
  • Dependency security: PASS.
  • Windows Inno candidate: PASS, including package verification, Inno install + repair smoke and build provenance.

Candidate artifact: ProcessBusInsight-v1.4.2-win-x64-inno-candidate-292, GitHub artifact ID 12304818556; archive contains ProcessBusInsight-v1.4.2-win-x64-setup.exe, candidate-manifest.json, SHA256SUMS.txt, candidate-tests.trx. Candidate manifest commit is exactly 44ec3fc0e041cada0125ede07c8b7985d5434bee.

Installer SHA256 (verified directly against archive bytes): 5917a6fb2b61a6f706a7efd089c27c852cd119e4ea25e06b8591ffa5bfc2baba.

Important remaining gate — real Windows UI/traffic: while automated tests cover keyed reconciliation, real WPF mouse-click retention under sustained GOOSE retransmissions, selected-row highlighting at 100/125/150% DPI, switch to/from historical timeline, physical NIC/SCL mapping, STALE/resume and same-name multi-publisher behavior still need operator bench acceptance on the exact candidate EXE. CI cannot prove this. Keep PR draft and avoid publishing a stable release until that evidence is supplied.

No v1.4.1 release/tag/assets changed, no auto-merge, and no manual rerun/duplicate CI request was triggered.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

This was referenced Oct 20, 2026
feat(goose): readable engineering Inspector, verified quality and stable DataSet details #49
Merged
style(goose): minimal red unread notification dot in Sources #51
Merged
@masarray
masarray marked this pull request as ready for review October 21, 2026 13:04
@masarray
masarray merged commit 09aa54f into main Oct 21, 2026
8 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@masarray
masarray deleted the fix/goose-publisher-selection-ssot-20261021 branch October 21, 2026 13:05
@chatgpt-codex-connector

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

Uh oh!

There was an error while loading. Please reload this page.

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:05:48.124543Z 44ec3fc 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.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

This was referenced Oct 21, 2026
feat(goose): multi-source filtering, truthful change markers and respectful live follow #50
Closed
M4 physical closeout: independent canonical SV+PTP TAP capture, 60-min soak, and IED acceptance #30
Open
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@masarray
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.