Skip to content

P0-E: exact SGCB Read completion accounting without fabricated MMS attempts - #631

Closed
masarray wants to merge 5 commits into
fix/p0-d-live-signal-viewport-stacked-20261020from
fix/p0-e-sgcb-read-coverage-evidence-20261020
Closed

masarray wants to merge 5 commits into
fix/p0-d-live-signal-viewport-stacked-20261020from
fix/p0-e-sgcb-read-coverage-evidence-20261020

Conversation

@masarray

Copy link
Copy Markdown
Owner

Parentage and scope

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 existing IedBrowserReadCompletionAccounting 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.
  • SGCB totals report observed, confirmed read failed, deferred/unverified, with explicit bounded truncation label; existing ledger/association/epoch fences preserved.
  • 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.

Copy link
Copy Markdown
Owner Author

Exact-SHA CI triage: initial HEAD e31e417b6fc183f55e1d83f227d9bbc996179537 RED, 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.

Copy link
Copy Markdown
Owner Author

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.

@masarray masarray closed this Oct 27, 2026
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