Skip to content

Add portable Sampled Values engineering evidence bundles - #108

Merged
masarray merged 17 commits into
mainfrom
agent/p1-sv-evidence-1-6-20
Jul 28, 2026
Merged

Add portable Sampled Values engineering evidence bundles#108
masarray merged 17 commits into
mainfrom
agent/p1-sv-evidence-1-6-20

Conversation

@masarray

@masarray masarray commented Jul 28, 2026

Copy link
Copy Markdown
Owner

Purpose

Close the P1 evidence gaps after the bounded two-cycle SV snapshot and P0 safety hardening. A capture can now leave ARSAS as a portable, integrity-checked engineering evidence package instead of remaining only on screen.

Evidence bundle

Each exported ZIP contains exactly seven auditable entries:

  • manifest.json — selection, observed stream, verdict, actual capture interval, timebase, transport, continuity, payload and proof boundary
  • provenance.json — ARSAS version plus immutable ARIEC61850 repository/ref/commit/source-PR provenance
  • samples.csv — invariant-culture raw signed numeric lanes with sample index and cycle position
  • waveform.png — static waveform proof rendered from the accepted snapshot
  • diagnostics.txt — explicit continuity counts and engine diagnostics
  • README.txt — human-readable capture/export timestamps, usage and non-claim boundary
  • SHA256SUMS.txt — integrity hashes for every evidence payload file

Evidence integrity

  • adapter, nominal frequency and stream identity are frozen when Capture is pressed
  • export cannot silently inherit a later UI selection
  • captureInterval.startedAtUtc and completedAtUtc are distinct from bundle generatedAtUtc
  • provenance reads the shipped sourcePullRequest lock key and remains compatible with pairedPullRequest
  • PASS/REVIEW is inherited from canonical restart-aware SmvSnapshotResult.IsCleanProof
  • export is atomic; a failed write does not leave an accepted partial bundle
  • raw lanes remain semantically unresolved without trusted ordered SCL mapping

UX

  • Export evidence becomes available only after an accepted snapshot
  • save dialog uses a portable traceable filename derived from captured stream identity and UTC time
  • completion reports the full bundle SHA-256
  • immutable ARIEC61850.lock.json is copied into build/publish output for offline provenance

Focused regression coverage

Final focused TRX: 6 executed / 6 passed

  1. exact seven-entry structure, raw samples, manifest and checksums
  2. restart-only window persists as REVIEW
  3. fixed evidence produces byte-for-byte deterministic ZIP output
  4. filename is portable and traceable
  5. manifest separates capture interval from delayed bundle generation time
  6. shipped sourcePullRequest provenance schema resolves engine PR 45

Final automated validation at head 182b928437540ef28acd5958dfbc4ec917b62d73

  • Validate SV evidence bundles run 9 — success
    • immutable engine checkout
    • focused WPF/exporter build
    • 6/6 evidence regression tests
    • compiler and TRX evidence uploaded
  • Build ARSAS run 704 — success
    • source/license and application invariants
    • complete solution Release build
    • complete application regression suite
    • portable Windows package publication
  • Installer validation run 75 — success
    • complete solution build and tests
    • installer compilation
    • silent install/uninstall smoke test
    • checksum generation and installer artifact upload
  • all three Codex review findings addressed, documented and resolved

Generated candidate artifacts

  • ARSAS-win-x64
  • ARSAS-1.6.19-win-x64-installer
  • ARSAS-test-evidence
  • ARSAS-sv-evidence-test-results
  • source snapshot and focused compiler diagnostics

Stacked PR boundary

This PR is based on agent/p0-hardening-1-6-19 / PR #107 and contains only P1 changes relative to that base. The development candidate remains ARSAS 1.6.19; stable public release remains 1.6.18.

PCAP replay, trusted ordered SCL semantic binding, reviewed scaling and controlled known-injection/live-MU acceptance remain outside this evidence-export tranche.

@masarray
masarray marked this pull request as ready for review July 28, 2026 05:44

@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: 8fcea9c444

ℹ️ 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 thread Services/SmvViewerWindow.P1Evidence.cs Outdated
Comment thread Services/SmvSnapshotEvidenceExporter.cs
Comment thread Services/SmvSnapshotEvidenceExporter.cs Outdated
@masarray
masarray changed the base branch from agent/p0-hardening-1-6-19 to main July 28, 2026 06:18
@masarray
masarray merged commit 1f5dd46 into main Jul 28, 2026
3 checks passed
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