All notable ARSVIN changes are documented here using a lightweight Keep a Changelog structure.
- Added a repository-owned, dependency-free public-site builder that converts every
docs/*.mdguide into a dedicated HTML page. - Added compact documentation navigation, topic filtering, breadcrumbs, source links, responsive styling, and a generated search index.
- Added unique canonical URLs, descriptions, Open Graph metadata, Twitter Card metadata, and
TechArticleJSON-LD for engineering documentation pages. - Added a generated multi-page sitemap containing the product homepage and every published documentation page.
- Added recursive validation for all HTML metadata, structured data, canonical uniqueness, local references, search-index targets, sitemap coverage, web-manifest icons, and robots metadata.
- Added committed NuGet lock files for Publisher, Subscriber, the shared engine, and Tests.
- Added CI evidence upload for the committed dependency lock graph.
- Added whole-engine and protocol-core regression floors of 10.5% and 60% respectively.
- Expanded the deterministic test suite from 26 to 54 tests across SCL, COMTRADE, PCAP, MMS, diagnostics, and Sampled Values publisher sessions.
- GitHub Pages and Windows CI now build and validate the same staged public-site artifact instead of copying raw Markdown into the deployment directory.
- The product landing page now links directly to Quick Start, SV Profile Support, COMTRADE Replay, Subscriber Verification, Safety Boundaries, and the complete documentation index.
- Validated CI, CodeQL, build, test, publish, and release paths now restore NuGet dependencies in locked mode.
- README, build guidance, contributor guidance, repository structure, release examples, and coverage baselines now match the current shared-engine implementation.
- CI, CodeQL, and release validation now use the explicit
windows-2025runner image; Pages and release publication useubuntu-24.04. - GitHub Pages now retriggers when the Python public-site validator changes.
- Moved all shared engine source physically from
src/ARSVIN/Engineinto the owningsrc/ARSVIN.Engineproject without duplicating compilation. - Raised whole-engine line coverage from 5.64% to 10.74% and protocol-core coverage from 57.89% to 64.97%.
- Multi-ASDU Publisher sessions now apply the configured
smpCntwrap to every ASDU inside a frame, preventing counters such as4000and4001when a 4,000-sample wrap is configured.
- Published GitHub Releases are now immutable in automation; a release job fails before attestation or upload when the semantic-version tag already has a GitHub Release.
- Artifact corrections require a new semantic-version patch instead of replacing previously published binaries, checksums, or SBOMs.
- Workflow execution no longer depends on moving
windows-latestorubuntu-latestlabels.
- Continue expanding deterministic regression tests for remaining live capture, MMS service, scheduling, and device-interoperability paths.
- Add Windows Authenticode signing when a trusted certificate becomes available.
- Added pinned Coverlet MSBuild instrumentation with TRX, Cobertura, and complete test-log evidence upload.
- Added a verified 50% line-coverage regression floor for the established IEC 61850 protocol-core test surface.
- Added transparent whole-engine coverage reporting: 15,726 production lines at the current 5.64% full-engine baseline.
- Established a protocol-core baseline of 57.89% line coverage across 1,534 instrumented lines, with 888 lines covered and all 26 tests passing.
- Added a repository-owned CycloneDX 1.5 SBOM generator for direct and transitive Publisher/Subscriber NuGet dependencies while excluding test-only packages.
- Added
ARSVIN-SBOM.cdx.jsonto validated workflow artifacts, release downloads, and SHA-256 checksums. - Added signed GitHub build-provenance and SBOM attestations for tagged release artifacts.
- Added the shared
ARSVIN.Engineclass library as the single compiled IEC 61850 protocol implementation used by Publisher, Subscriber, and Tests.
- Public releases now require semantic-version tags whose commits are already contained in
main. - Alpha, beta, and release-candidate tags are published as prereleases without replacing the latest stable release.
- Centralized Publisher and Subscriber source version metadata.
- GitHub Pages now validates the public site immediately before deployment.
- Publisher and Subscriber now reference one engine assembly instead of compiling duplicate copies of the protocol source.
- Protocol tests now exercise the same
ARSVIN.Engineassembly shipped with both applications. - Coverage instrumentation now measures the complete shared engine while preserving the tested protocol-core regression gate.
- Pinned all GitHub Actions used by CI, CodeQL, Pages, and release workflows to immutable commit SHAs while retaining version comments for maintainability and Dependabot updates.
- Pinned automated installer compilation to the exact Inno Setup 6.7.1 Chocolatey package and retained resolved compiler metadata in workflow evidence.
- Treat compiler warnings as errors in validated Publisher, Subscriber, test, release, and CodeQL build paths.
- Stabilized SBOM component ordering, source commit, and metadata timestamp for repeatable review from the same commit.
- Public Apache-2.0 ARSVIN suite positioning with separate Publisher and ArSubsv Subscriber applications.
- Self-contained Windows x64 portable executables for Publisher and Subscriber.
- Inno Setup suite installer with Start Menu shortcuts, documentation, samples, and uninstaller.
- Portable suite ZIP and SHA-256 checksum release assets.
- SCL/SCD-assisted SV stream configuration and validation.
- Multi-ASDU Sampled Values publishing with
nofASDU=1/2/4/8. - Manual values, ramps, state sequences, per-phase scenarios, waveform shaping, and COMTRADE replay.
- Publisher timing-health metrics, generated PCAP export, and Markdown evidence reports.
- ArSubsv live Npcap capture, classic-PCAP import, stream discovery, payload decoding, waveform, phasor, RMS, and receiver reports.
- Real application screenshots in the public README and GitHub Pages product site.
- SEO metadata, Open Graph, Twitter Card,
SoftwareApplicationJSON-LD, FAQ structured data, sitemap, robots, and web manifest. - GitHub Actions CI, full-solution CodeQL, Pages deployment, release packaging, installer smoke test, and dependency vulnerability reports.
- Reworked ArSubsv into a compact engineering workspace with a persistent stream explorer, dominant waveform view, phasor rail, values, frame details, diagnostics, and cursor comparison.
- Normalized Subscriber phasor angles to
Va = 0°for clearer Publisher/Subscriber comparison. - Centralized public documentation around transparent laboratory evidence and explicit IEC 61850 safety boundaries.
- Made silent installer and uninstaller operation suitable for automated release validation.
- Publisher shutdown dispatch no longer raises late UI exceptions while the application is closing.
- Subscriber payload decoding, linked engine compilation, WPF control resolution, and frame parser build issues.
- Publisher slot selection now updates the currently selected live slot instead of a stale startup selection.
- Release packaging now fails immediately when external
dotnetor installer commands fail.
- Clarified that ARSVIN is not a calibrated protection test set, certified merging unit, deterministic real-time platform, production process-bus monitor, or IEC 61850 conformance tool.
- Clarified that Publisher evidence proves generated traffic and Subscriber evidence proves PC/NIC reception, not IED consumption.
- Kept Npcap external to the installer and limited live use to authorized, isolated laboratory networks.
- Initial ArSubsv IEC 61850 Sampled Values Subscriber companion.
- Npcap capture, SV APDU decode, SCL binding, stream-health analysis, sample-counter continuity checks, decoded values, waveform, phasor, RMS, PCAP replay, and Markdown verification reports.
- Kept Publisher and Subscriber as separate applications so each workflow remains focused and its evidence boundary remains clear.
- Initial Windows WPF IEC 61850 Sampled Values Publisher.
- SCL-based stream setup.
- Manual, ramp, and state-sequenced publishing workflows.
- COMTRADE replay.
- Laboratory PTP and
smpSynchcompatibility controls. - Initial CI, CodeQL, Pages, and release packaging.