Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ ARSAS is an open-source Windows IEC 61850 engineering workstation for FAT, SAT,

> **Current stable release: ARSAS v1.6.40.** Production packages use the physically proven Smart Discovery route and the pinned ARIEC61850 engine revision recorded in [`engines/ARIEC61850.lock.json`](engines/ARIEC61850.lock.json). The qualified AA1E1F06R4 field path reached zero SCL projection/cache-loss errors, 58/58 report-backed runtime points, and observed real `InformationReport` traffic.
>
> **Field acceptance record:** [v1.6.40 installed-release physical verification](docs/V1-6-40_INSTALLED_RELEASE_FIELD_ACCEPTANCE.md) documents the exact release/engine pair, 2.395 s Smart Discovery, 58/58 report-backed runtime points, and zero cyclic MMS process polling. This is distinct from the [v1.6.39 physical rejection](evidence/v1.6.39-physical-rejection.json).
>
> **Evidence boundary:** those counts describe the recorded physical qualification target, not a universal claim for every IED. Download identity, SHA-256, SBOM, provenance, and attestations remain tied to the published GitHub Release.

## What changed in v1.6.40
Expand Down
55 changes: 55 additions & 0 deletions docs/V1-6-40_INSTALLED_RELEASE_FIELD_ACCEPTANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# ARSAS v1.6.40 — installed stable release field acceptance

**Status:** Maintainer-accepted stable release; installed-package physical diagnostic recorded on 23 September 2026 (UTC+07:00).

This record closes the documentation gap between the [physically rejected v1.6.39](../evidence/v1.6.39-physical-rejection.json) and the successfully released v1.6.40 Smart Discovery production route. The maintainer confirms that v1.6.40 was released after successful Smart Discovery physical acceptance. The attached operator diagnostic, summarized here without publishing the raw file, independently identifies the installed v1.6.40 application and pinned engine and shows successful live discovery and static reporting in the recorded session.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Bind field acceptance to a measured artifact identity

For any binary rebuilt as version 1.6.40 from a different source revision, this diagnostic still reports the same application identity: scripts/publish-windows-portable.ps1 forces InformationalVersion to the normalized version, and DiagnosticReportBuilder.GetAssemblyVersion reads only that attribute. Since the record also acknowledges that no executable SHA-256 was measured, the diagnostic cannot independently identify commit 1b26dc...; attributing the field result to that exact commit can therefore qualify the wrong build. Record only the observed version, or add an embedded revision/measured artifact hash before making this claim.

AGENTS.md reference: AGENTS.md:L11-L14

Useful? React with 👍 / 👎.


## Exact installed-package identity

| Item | Field-observed identity |
| --- | --- |
| ARSAS stable tag | [v1.6.40](https://github.com/masarray/arsas/releases/tag/v1.6.40) |
| Application commit | `1b26dc1235b3bac0300bf84c1b5e8fc590934bc5` |
| ARIEC61850 commit | `648124097621046f5f127ceb1cf853fea54db730` |
| Test device | `AA1E1F06R4` (existing documented physical reference) |
| Evidence kind | Installed release diagnostic; not a simulation or CI-only fixture |
| Diagnostic timestamp | 2026-09-23 20:36:50 UTC+07:00 |

The application and engine commits match [published release provenance](../.release/published.json). The diagnostic identifies the installed package, but does **not** include an independent executable-file SHA-256 or prove that the portable executable was physically exercised. The published release checksum and provenance are separate evidence.

## Observed physical session

| Measurement | Recorded result |
| --- | ---: |
| Smart Discovery time | 2,395.3 ms |
| Smart Discovery KPI confirmed requests | 204 |
| Duplicate requests | 0 |
| Peak outstanding / negotiated calling | 8 / 10 |
| Logical Devices / Logical Nodes | 32 / 119 |
| Data Objects / Data Attributes | 895 / 6,335 |
| LN-root type probes | 119/119 successful |
| DataSets / directory reads | 2 / 2 of 2 |
| Static DataSet members represented | 58/58 |
| Analog / Digital | 22/22 / 36/36 |
| Configured static RCB plans | 2 (Analog URCB and Digital BRCB) |
| Selected / report-covered runtime points | 58 / 58 |
| Final unavailable or unresolved runtime points | 0 |
| Cyclic MMS process polling | 0 |

The session used the tracked `SMART-CAPTURE PR134 P0-5c` route, one association-scoped discovery owner, exclusive application MMS gate and deferred initial FC-root reads. The Analog `RP.Unbuffer01` (22 members) and Digital `BR.Buffer01` (36 members) subscriptions were reported active. Subsequent `REPORT_SEMANTIC_STRUCT` entries record structured report updates after monitoring started. No cyclic MMS process-value polling or dynamic DataSet creation was used in this Static DataSet mode.

## Interpret diagnostics correctly

- `Primary unresolved=14` refers to inventory descriptors before exact structured/static projection; it is **not** the final monitor result. The selected 58 runtime rows were reported covered and final unresolved count was **0**.
- The two RCB planning entries reported availability `Unknown` because availability metadata was incomplete; the log subsequently reports actual successful RCB activation. Do not classify this as a failed subscription.
- A Digital BRCB explicit `ResvTms` write was rejected as `type-inconsistent`; the client continued via the implicit reservation/`RptEna=true` path, and the BRCB was reported active. Preserve the warning as an observed interoperability detail rather than claiming every setup write succeeded.
- `REPORT_SEMANTIC_STRUCT` warnings describe schema-driven structured-value expansion, not `REPORT_VALUE_REJECTED`.
- This snapshot supports the stated successful installed-release session; it does not measure multi-hour stability, prove a fresh raw-PCAP service count, or assert universal compatibility with other IEDs.

## Release and regression boundary

The [v1.6.39 rejection](../evidence/v1.6.39-physical-rejection.json) documented wrong production compilation, ~31.622 s discovery, and only 23/58 report-backed points. v1.6.40 corrected the production build route via [PR #347](https://github.com/masarray/arsas/pull/347) and was published from the exact source and engine shown above. This installed-package diagnostic confirms the successful Smart Discovery/report-only runtime shape and must **not** be reinterpreted as a pending requalification of the already released baseline.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep requalification pending until both packages are retested

When this record is used to clear the v1.6.39 rejection, the conclusion conflicts with evidence/v1.6.39-physical-rejection.json, whose corrective policy explicitly requires physical retesting of both the portable and installer candidates. This new record covers one installed package and explicitly says the portable executable was not physically exercised, yet this sentence directs readers not to treat requalification as pending. Either attach evidence for both required package tests or narrow the status to a partial installed-package observation.

AGENTS.md reference: AGENTS.md:L215-L227

Useful? React with 👍 / 👎.


Do not change the production Smart Discovery route, pinned engine, Static DataSet acquisition authority, RCB activation or report projection as a side effect of evidence/documentation cleanup. Future changes in those paths require their own bounded regression and field acceptance.

Machine-readable sanitized record: [`evidence/v1.6.40-installed-release-field-verification.json`](../evidence/v1.6.40-installed-release-field-verification.json). The operator's raw diagnostic is intentionally not committed: it includes private network topology, a machine identifier, local paths and MMS hex excerpts.
2 changes: 1 addition & 1 deletion docs/WINDOWS_RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ARSAS publishes two Windows x64 deliverables from the same reviewed source revis
- `ARSAS-Windows-x64-Portable.exe` — a real self-contained single EXE for approved no-install use.
- `ARSAS-Windows-x64-Setup.exe` — the Inno Setup installer with Start Menu integration, uninstall support, and the same pinned ARIEC61850 and ArdIrec native-analysis revisions used by the release build.

The current application version on `main` is **1.6.37**. Public download metadata remains authoritative only after the corresponding tagged GitHub Release has been published and its checksums/provenance are visible.
The current stable application version is **1.6.40**. Public download metadata remains authoritative only after the corresponding tagged GitHub Release has been published and its checksums/provenance are visible. See the [v1.6.40 installed-release field acceptance](V1-6-40_INSTALLED_RELEASE_FIELD_ACCEPTANCE.md) for the exact physical Smart Discovery/static-reporting evidence, and the [v1.6.39 rejection record](../evidence/v1.6.39-physical-rejection.json) for the superseded release regression.

## Official stable release path

Expand Down
83 changes: 83 additions & 0 deletions evidence/v1.6.40-installed-release-field-verification.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
{
"schemaVersion": 1,
"recordType": "sanitized-installed-release-field-diagnostic",
"release": "v1.6.40",
"status": "field-observed-accepted-installed-release",
"maintainerAcceptance": "The maintainer confirms that v1.6.40 was published following successful Smart Discovery physical acceptance; this record supplies an additional diagnostic snapshot of the installed stable package.",
"observedAtLocal": "2026-09-23T20:36:50.323+07:00",
"testedDevice": "AA1E1F06R4",
"application": {
"version": "1.6.40",
"commit": "1b26dc1235b3bac0300bf84c1b5e8fc590934bc5",
"installedPackageObserved": true
},
"engine": {
"version": "1.6.40",
"commit": "648124097621046f5f127ceb1cf853fea54db730"
},
"discovery": {
"route": "SMART-CAPTURE PR134 P0-5c",
"freeze": "P0-R9-STRUCTURAL",
"associationFlight": "single-owner",
"mmsGate": "exclusive",
"authority": "new association",
"kpiConfirmedRequests": 204,
"duplicateRequests": 0,
"wireAccounting": "complete",
"peakOutstanding": 8,
"negotiatedCalling": 10,
"elapsedMs": 2395.3,
"logicalDevices": 32,
"logicalNodes": 119,
"dataObjects": 895,
"dataAttributes": 6335,
"rawVariables": 8730,
"fcPoints": 7994,
"typeProbes": 119,
"successfulTypeProbes": 119,
"initialFcRoots": "deferred",
"initialReadBatches": 0
},
"staticReporting": {
"dataSets": 2,
"staticMembers": 58,
"representedMembers": 58,
"missingMembers": 0,
"analogMembers": 22,
"digitalMembers": 36,
"selectedRuntimeRows": 58,
"reportBackedRuntimeRows": 58,
"finalUnresolvedRuntimeRows": 0,
"configuredRcbPlans": 2,
"analogRcb": "RP.Unbuffer01",
"digitalRcb": "BR.Buffer01",
"cyclicMmsProcessPolling": 0,
"dynamicDataSetCreation": false,
"reportProcessingObserved": true,
"structuredSemanticReportUpdatesObserved": true
},
"diagnosticNuances": {
"inventoryPrimaryUnresolvedBeforeRuntimeProjection": 14,
"finalUnresolvedRuntimeRows": 0,
"rcbAvailabilityUnknownAtPlanning": "Availability metadata remained Unknown, but exact RCB activation succeeded.",
"brcbResvTms": "Explicit ResvTms write returned type-inconsistent; the client continued through the supported implicit reservation/RptEna path and activated the BRCB.",
"reportSemanticStructWarning": "Structured semantic expansion entries show report processing; they are not REPORT_VALUE_REJECTED."
},
"evidenceBoundary": {
"rawDiagnosticPublished": false,
"rawPcapIncluded": false,
"executableSha256MeasuredByThisDiagnostic": false,
"portablePackagePhysicallyTestedByThisDiagnostic": false,
"observationScope": "One installed v1.6.40 package and one recorded physical relay session; the maintainer's release acceptance is distinct from the scope of this snapshot.",
"removedFromPublicRecord": [
"private IP addresses and adapter routes",
"local machine name",
"local filesystem paths",
"raw MMS request/response hex"
]
},
"relatedRecords": [
"evidence/v1.6.39-physical-rejection.json",
".release/published.json"
]
}
Loading