Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
87c619f
test(goose): introduce stable keyed publisher reconciliation and dete…
masarray Oct 20, 2026
db1c609
test(goose): introduce stable keyed publisher reconciliation and dete…
masarray Oct 20, 2026
6d5244f
fix(goose): preserve keyed publisher selection and independent cohere…
masarray Oct 20, 2026
508fbdd
fix(goose): bind stable publisher rows and inspector to one live or h…
masarray Oct 20, 2026
27d6932
fix(goose): distinguish same GoCB on different physical LAN sources i…
masarray Oct 20, 2026
50087af
test(goose): assert raw publisher separation for identical GoCBRef on…
masarray Oct 20, 2026
caeb8d6
chore(release): reserve v1.4.2 hotfix candidate without modifying pub…
masarray Oct 20, 2026
b75957e
chore(release): reserve v1.4.2 hotfix candidate without modifying pub…
masarray Oct 20, 2026
22cfc03
chore(release): reserve v1.4.2 hotfix candidate without modifying pub…
masarray Oct 20, 2026
d8e7732
chore(release): reserve v1.4.2 hotfix candidate without modifying pub…
masarray Oct 20, 2026
a85b5ab
docs: describe v1.4.2 GOOSE selection hotfix candidate and field acce…
masarray Oct 20, 2026
3218b2d
refactor(goose): derive selected live frame solely from keyed catalog…
masarray Oct 20, 2026
f03b635
fix(goose): preserve case-sensitive GoCB identity and align unknown-r…
masarray Oct 20, 2026
8845b78
fix(goose): align catalog fallback identity with receive-engine proto…
masarray Oct 20, 2026
a9ac452
fix(goose): validate stale/live coexistence and honor repeat-click se…
masarray Oct 20, 2026
91042a2
fix(goose): validate stale/live coexistence and honor repeat-click se…
masarray Oct 20, 2026
4642a0d
fix(goose): validate stale/live coexistence and honor repeat-click se…
masarray Oct 20, 2026
abbfd8d
feat(goose): make explorer filtering deterministic without changing s…
masarray Oct 20, 2026
8daf806
fix(goose): filtered explorer view preserves keyed user selection
masarray Oct 20, 2026
5c161bb
fix(goose): bind filtered publisher view without resetting stable row…
masarray Oct 20, 2026
44ec3fc
test(goose): cover search and GoID filter misses while stable selecti…
masarray Oct 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/release-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ on:
workflow_dispatch:
inputs:
version:
description: Version label, for example 1.4.1
description: Version label, for example 1.4.2
required: true
default: 1.4.1
default: 1.4.2
publish_release:
description: Publish GitHub Release after successful validation (manual only)
required: true
Expand All @@ -25,7 +25,7 @@ on:
release_notes_file:
description: Markdown file used as release body
required: true
default: docs/RELEASE_NOTES_v1.4.1.md
default: docs/RELEASE_NOTES_v1.4.2.md
push:
tags:
- "v*"
Expand Down Expand Up @@ -183,7 +183,7 @@ jobs:
$sha = "artifacts/release/SHA256SUMS.txt"
$manifest = "artifacts/release/release-manifest.json"
$notesFile = '${{ github.event.inputs.release_notes_file }}'
if ([string]::IsNullOrWhiteSpace($notesFile)) { $notesFile = 'docs/RELEASE_NOTES_v1.4.1.md' }
if ([string]::IsNullOrWhiteSpace($notesFile)) { $notesFile = 'docs/RELEASE_NOTES_v1.4.2.md' }
if (-not (Test-Path $notesFile)) { throw "Release notes file not found: $notesFile" }

$releaseArgs = @('release', 'create', $tag, $installer, $zip, $sha, $manifest, '--title', "Process Bus Insight $tag", '--notes-file', $notesFile, '--target', '${{ github.sha }}')
Expand Down
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<NeutralLanguage>en</NeutralLanguage>

<!-- Public release version. Pre-release versions may set VersionSuffix explicitly. -->
<VersionPrefix Condition="'$(VersionPrefix)' == ''">1.4.1</VersionPrefix>
<VersionPrefix Condition="'$(VersionPrefix)' == ''">1.4.2</VersionPrefix>
<VersionSuffix Condition="'$(VersionSuffix)' == ''"></VersionSuffix>
<Version Condition="'$(Version)' == '' and '$(VersionSuffix)' == ''">$(VersionPrefix)</Version>
<Version Condition="'$(Version)' == '' and '$(VersionSuffix)' != ''">$(VersionPrefix)-$(VersionSuffix)</Version>
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ The application can record what was configured in SCL, what the selected capture

## Download and run

1. Download the latest **Windows Inno Setup installer** from [GitHub Releases](https://github.com/masarray/DigSubAnalyzer/releases): `ProcessBusInsight-v1.4.1-win-x64-setup.exe`.
1. Download the latest published **Windows Inno Setup installer** (v1.4.2 after its public release) from [GitHub Releases](https://github.com/masarray/DigSubAnalyzer/releases): `ProcessBusInsight-v1.4.2-win-x64-setup.exe`.
2. Run the installer. Its stable app identity supports in-place updates, same-version repair, Windows uninstall, and optional desktop shortcut.
3. **Offline manuals are installed directly inside the app folder** (`User Manual.pdf`, `Quick Start.pdf`, and `Install and Update.md`), with Start Menu shortcuts.
4. Install **Npcap separately** when live raw Ethernet capture is required; it is not bundled. Offline PCAP analysis remains available without it.
Expand All @@ -58,8 +58,8 @@ An optional **portable ZIP** is also available for manual extraction. The commun
Current Windows distribution naming:

```text
ProcessBusInsight-v1.4.1-win-x64-setup.exe
ProcessBusInsight-v1.4.1-win-x64-portable.zip (optional)
ProcessBusInsight-v1.4.2-win-x64-setup.exe
ProcessBusInsight-v1.4.2-win-x64-portable.zip (optional)
SHA256SUMS.txt
release-manifest.json
```
Expand Down Expand Up @@ -100,8 +100,8 @@ dotnet run --project .\src\ProcessBus.App.Wpf\ProcessBus.App.Wpf.csproj -c Relea
Create and verify a portable package:

```powershell
.\scripts\publish-windows-portable.ps1 -Version "1.4.1"
.\scripts\verify-release-package.ps1 -PackageZip ".\artifacts\release\ProcessBusInsight-v1.4.1-win-x64-portable.zip"
.\scripts\publish-windows-portable.ps1 -Version "1.4.2"
.\scripts\verify-release-package.ps1 -PackageZip ".\artifacts\release\ProcessBusInsight-v1.4.2-win-x64-portable.zip"
```

Run the repository-quality gate:
Expand Down
16 changes: 16 additions & 0 deletions docs/RELEASE_NOTES_v1.4.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Process Bus Insight v1.4.2 — GOOSE Selection Hotfix Candidate

This hotfix follows published v1.4.1 and is **not** an IEC 61850 certification or a claim of completed physical Windows field acceptance.

## Operator-visible changes
- Publisher explorer holds a stable selected publisher when GOOSE snapshots update rapidly.
- Inspector live values use the latest coherent selected-publisher frame; clicking a timeline row deliberately pins historical evidence without overwriting the chosen live publisher.
- Explicit selection persists across retransmissions, filtering, and temporary publisher absence. STALE retains last valid values and last-received time.
- Publisher identity includes source MAC, APPID, VLAN, and GoCBRef, preventing collisions between similarly named control blocks.
- Typed DataSet values still use generic MMS decode when SCL is unavailable, and resolve matching SCL mapping when supplied.
- No layout spacing, phasor, waveform, PTP, or SV decoder changes.

## Verification before public release
A Windows hotfix candidate must pass repository health, Windows CI/test, Runtime Stability, Runtime Architecture, CodeQL, verified Inno installation/repair and exact-SHA BuildInfo provenance. A physical click/selection stream test remains a separate required check (100%, 125%, 150% DPI; sustained retransmissions, multiple publishers and filters).

**Distribution:** candidate artifacts produced by the PR workflow are not a published stable v1.4.2 release. Preserve v1.4.1 tag and published assets. Explicit approval required to release the hotfix.
2 changes: 1 addition & 1 deletion docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"applicationCategory": "EngineeringApplication",
"applicationSubCategory": "Digital substation and process bus analysis",
"operatingSystem": "Windows 10, Windows 11",
"softwareVersion": "1.4.1",
"softwareVersion": "1.4.2",
"license": "https://spdx.org/licenses/GPL-3.0-or-later.html",
"isAccessibleForFree": true,
"url": "https://masarray.github.io/DigSubAnalyzer/",
Expand Down
Loading
Loading