You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Stacked on green P0-D viewport #630 exact base 0e084040e5d8f7c19725dfea4005e5bd5eff06c6, itself on P0-D #628 / P0-A→B→C and engine ba21d882f67de22c10d3155b449aac77aa8b4899. This is a separate correctness hardening workstream and remains draft.
Reproduced code-level root cause
MainWindow.IedBrowser.cs SGCB completion assigned "Not yet scheduled" to every missing target, even those present in the actual bounded targets queue with no terminal result. It also counted Interrupted (terminal result unknown) as a terminal failure. Those are two categorically different diagnostic states and must not imply an MMS on-wire rejection.
Source changes
The existingIedBrowserReadCompletionAccounting now produces a bounded read-only IedBrowserReadCoverageSummary in one scan. Classify delegates to it; no duplicated value cache, second engine, FC alias fallback, or network activity.
LN/DO/DataSet and SGCB share the same exact-reference/FC coverage calculation. Unscheduled target = NotScheduled; queued without terminal = TerminalResultUnverified, not an actual wire attempt; Interrupted stays an independent absence reason and is not mislabeled as confirmed terminal failure.
Added tests for FC SG versus SE, queued unknown vs never scheduled, interrupted non-terminal, and finite max-target scope. No edits to ReadSingleVariableAsync, RCB, control, polling, original engine, or UI viewport contract.
Validation / qualification
Run Windows build, full R7, installer/package and exact-head regression on the PR SHA. Field 35 OBSERVED + 1 READ_FAILED + 2 NO ATTEMPT EVIDENCE remains historical and does not become newly wire-proven. No claim of Edition 1/2/2.1/2.2 device qualification from code tests. No merge/release/physical promotion until proper gates.
Exact-SHA CI triage: initial HEAD e31e417b6fc183f55e1d83f227d9bbc996179537RED, not yet promotable. R7 https://github.com/masarray/arsas/actions/runs/39366748013 executed 2,388 tests: 2,387 PASS, 1 FAIL (IedBrowserReadResultInboxTests.UiReadHandlerUsesExplicitInboxCompletionBeforeResultsSubtitle). Existing source-level contract required literal IedBrowserReadCompletionAccounting.Classify( although the refactor now correctly uses Summarize(...) to obtain bounded counts and gaps. The implementation compiled and other 2,387 tests passed. Commit b3527d18735fcf8794a32a2bdd60cf91d8b008e0 updates, rather than removes, this assertion: final synchronous inbox drain remains required ahead of catalog fence and result summary; the test now verifies single-pass coverage, exact failed-kind predicate and deferred accounting. Await new exact-head Windows CI; previous RED is historical evidence, not dismissed.
D28 archival on maintainer direction: older experimental IEC 61850 branch superseded by the latest successful, operator-accepted baseline. The operator will not recapture evidence for this historical trial. Closing as NOT MERGED, without modifying runtime or stable release. Historical HEAD b3527d18735fcf8794a32a2bdd60cf91d8b008e0 and its distinct code/tests remain preserved in GitHub; those unmerged changes are not falsely claimed as implemented. This retirement removes a stale integration proposal, not an established safety limitation or protocol fact. No follow-up capture required for PR cleanup.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Parentage and scope
Stacked on green P0-D viewport #630 exact base
0e084040e5d8f7c19725dfea4005e5bd5eff06c6, itself on P0-D #628 / P0-A→B→C and engineba21d882f67de22c10d3155b449aac77aa8b4899. This is a separate correctness hardening workstream and remains draft.Reproduced code-level root cause
MainWindow.IedBrowser.csSGCB completion assigned "Not yet scheduled" to every missing target, even those present in the actual boundedtargetsqueue with no terminal result. It also countedInterrupted(terminal result unknown) as a terminal failure. Those are two categorically different diagnostic states and must not imply an MMS on-wire rejection.Source changes
IedBrowserReadCompletionAccountingnow produces a bounded read-onlyIedBrowserReadCoverageSummaryin one scan.Classifydelegates to it; no duplicated value cache, second engine, FC alias fallback, or network activity.NotScheduled; queued without terminal =TerminalResultUnverified, not an actual wire attempt;Interruptedstays an independent absence reason and is not mislabeled as confirmed terminal failure.ReadSingleVariableAsync, RCB, control, polling, original engine, or UI viewport contract.Validation / qualification
Run Windows build, full R7, installer/package and exact-head regression on the PR SHA. Field
35 OBSERVED + 1 READ_FAILED + 2 NO ATTEMPT EVIDENCEremains historical and does not become newly wire-proven. No claim of Edition 1/2/2.1/2.2 device qualification from code tests. No merge/release/physical promotion until proper gates.