diff --git a/README.md b/README.md index f38c44c0f..dc3d17efd 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/docs/V1-6-40_INSTALLED_RELEASE_FIELD_ACCEPTANCE.md b/docs/V1-6-40_INSTALLED_RELEASE_FIELD_ACCEPTANCE.md new file mode 100644 index 000000000..978349ac9 --- /dev/null +++ b/docs/V1-6-40_INSTALLED_RELEASE_FIELD_ACCEPTANCE.md @@ -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. + +## 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. + +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. diff --git a/docs/WINDOWS_RELEASES.md b/docs/WINDOWS_RELEASES.md index 9917a9936..c9d2315fb 100644 --- a/docs/WINDOWS_RELEASES.md +++ b/docs/WINDOWS_RELEASES.md @@ -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 diff --git a/evidence/v1.6.40-installed-release-field-verification.json b/evidence/v1.6.40-installed-release-field-verification.json new file mode 100644 index 000000000..1de2ade77 --- /dev/null +++ b/evidence/v1.6.40-installed-release-field-verification.json @@ -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" + ] +}