Skip to content

Final physical bench candidate: bundled offline PCAP/SCL CLI, measurement script and verified Windows ZIP - #32

Merged
masarray merged 3 commits into
mainfrom
fix/final-windows-physical-test-kit-20261017
Oct 17, 2026
Merged

masarray merged 3 commits into
mainfrom
fix/final-windows-physical-test-kit-20261017

Conversation

@masarray

Copy link
Copy Markdown
Owner

Why

The previous Windows x64 candidate only included the desktop EXE. Users conducting independent physical SV/PTP tests lacked a packaged PCAP+SCL inspection CLI, bench runbook, and 60-minute CPU/memory sampler despite those tools existing in source. This PR closes that release usability gap without creating any new IEC 61850 protocol model or loosening evidence rules.

Changed

  • Publish ProcessBus.InteropCli.exe as an additional self-contained win-x64 tool in Bench/ of the portable ZIP; the root still contains exactly one GUI EXE.
  • Include Bench/START_HERE.md, full M4 acceptance runbook, and read-only measure-m4-bench.ps1 in the artifact.
  • Upgrade release package verification to assert all bench files exist and actually execute InteropCli.exe --help on Windows. Candidate-build workflow must pass Publish -> Verify -> Upload.
  • No customer SCL, PCAP, MAC, IP, or telemetry uploaded. No claimed physical or IED acceptance: tracked in M4 physical closeout: independent canonical SV+PTP TAP capture, 60-min soak, and IED acceptance #30.

Gate

CI Windows, xUnit, Runtime Stability, CodeQL, Dependency Review and successful verified downloadable win-x64 candidate artifact on the same head SHA. Merge only after gates pass; then link the candidate artifact directly.

@masarray
masarray marked this pull request as ready for review October 17, 2026 05:35
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 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-17T05:38:11.737047Z f14f93f 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.

@masarray
masarray merged commit 6c5b849 into main Oct 17, 2026
6 checks passed
@masarray
masarray deleted the fix/final-windows-physical-test-kit-20261017 branch October 17, 2026 05:36

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f14f93fb28

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +107 to +108
Copy-Item (Join-Path $repoRoot "docs/M4_ARSTACK_INTEROP_ACCEPTANCE.md") (Join-Path $interopStageDir "M4_ARSTACK_INTEROP_ACCEPTANCE.md") -Force
Copy-Item (Join-Path $repoRoot "scripts/measure-m4-bench.ps1") (Join-Path $interopStageDir "measure-m4-bench.ps1") -Force

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Make the bundled measurement command usable

When an operator follows the copied Bench/M4_ARSTACK_INTEROP_ACCEPTANCE.md, its performance command targets .\scripts\measure-m4-bench.ps1, but the package stages the script under Bench; even after correcting that path manually, the command omits -ProcessName, so the script defaults to ProcessBus.App.Wpf while the packaged executable runs as ProcessBusInsight. The documented 60-minute run therefore either fails immediately or records only missing-process rows, so update the packaged runbook and/or the script default.

Useful? React with 👍 / 👎.

Comment on lines +87 to +88
$interopProject = Join-Path $repoRoot "tools/ProcessBus.InteropCli/ProcessBus.InteropCli.csproj"
$interopPublishDir = Join-Path $repoRoot "$OutputRoot/publish/$portableName/interop-cli"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Trigger candidate packaging for bundled CLI changes

Now that the release artifact is built from tools/ProcessBus.InteropCli, a PR changing only that project will not trigger .github/workflows/candidate-package.yml: its pull_request.paths list includes src/** and tests/** but not tools/**. Such changes receive the ordinary compile/test job but skip the self-contained publish and packaged --help smoke test added here, so a candidate can be merged without exercising the new artifact path; add the bundled tool path (and the other newly copied bench inputs) to that workflow's triggers.

Useful? React with 👍 / 👎.

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