Skip to content

convergence(discovery/scl): interoperable discovery and usable SCL - #324

Merged
masarray merged 244 commits into
mainfrom
test/smart-ied-discovery-pr134
Sep 19, 2026
Merged

masarray merged 244 commits into
mainfrom
test/smart-ied-discovery-pr134

Conversation

@masarray

@masarray masarray commented Sep 16, 2026 •

Copy link
Copy Markdown
Owner

Active convergence authority

Primary product target: ARSAS discovery should behave like reference interoperability tool on the same relay, build the IEC 61850 model correctly, and save an IID/ICD that is usable for reopen + reconnect.

Machine-readable single source of truth:
evidence/interoperability-convergence-target.json

Human-readable contract:
docs/INTEROPERABILITY_CONVERGENCE.md

One active stack

  1. ARIEC61850 PR Harden release post-publication workflows #134 — smart discovery/performance authority.
  2. ARIEC61850 PR Fix RCB DataSet evidence merge and logical-scope display #135 — canonical model + association evidence + semantic SCL authority, stacked on Harden release post-publication workflows #134.
  3. ARSAS PR convergence(discovery/scl): interoperable discovery and usable SCL #324 — exact consumer integration + physical-evidence artifact.

No older discovery/SCL trial PR is an allowed base for new convergence work.

Current exact engine authority

4900427cb1710b433fb74d3ad99099b28ab27ef7

It contains:

  • the complete PR Harden release post-publication workflows #134 smart discovery lineage;
  • structure-first RCB enrichment;
  • accepted-wire association evidence;
  • native calling identity for SCL reconnect;
  • prefixed LN parsing from the numeric instance boundary;
  • WYE/DEL/SEQ SDO projection;
  • descendant FC ownership;
  • TCTR/TVTR/LTIM/EEName/MltLev semantic authority;
  • Edition 2 LTRK service-tracking CDC support with Edition 1 downgrade protection;
  • 34 runtime RCB -> 32 logical ReportControl projection.

Fail-closed integration rules

R7 must refuse an artifact if:

  • the smart route was not actually injected into DiscoverSignalsAsync;
  • supplemental legacy browse/adaptive enrichment returns to the smart path;
  • the engine lock diverges from the convergence contract;
  • semantic SCL source contracts disappear;
  • full-model export cannot reopen in ARSAS;
  • the saved SCL cannot rebuild the accepted association plan;
  • production promotion is enabled before new physical evidence.

Physical acceptance

CI is not product acceptance.

The exact candidate must be retested on AA1E1F06R4 and compared with the supplied reference interoperability tool capture/SCL. Required evidence:

  • new ARSAS PCAP;
  • new Ed2 IID;
  • new Ed1 ICD;
  • diagnostic report;
  • same-relay request/timing/model comparison.

The target is one MMS association, no recursive per-leaf GVA storm, no supplemental discovery association, correct canonical IEC model, and usable saved SCL.

Keep this PR Draft and unmerged until physical acceptance passes.

R8 reuse checkpoint

Physical AA1E1F06R4 evidence from ARSAS 0b9e293... + engine 4900427... established a split result:

  • preserve: Smart Discovery wire path (one association, 119/119 LN-root type probes, no legacy supplemental browse, ~2.3 s application discovery);
  • repair: canonical model -> SCL -> trusted-SCL value/report projection.

SCL reuse connected successfully and all 563 FC-root Reads succeeded, but 174 positional projection errors remained. Report traffic was alive, while many Boolean rows received Quality-shaped BIT STRING values. Source audit found the model/export pipeline alphabetically reordered MMS type members and incorrectly classified SG/SE setting data as SettingControl inventory. Engine PR #135 now carries the evidence-backed repair. Current integration pin is 64840e5571ac8661a8a13a75ccdd85bef134cb4a.

The fast discovery path is frozen for this repair. New physical acceptance must show reduced/zero projection errors, correct report scalar routing, one SettingControl, restored TCTR/TVTR/LTIM/MltLev model objects, and MHAI THD WYE/CMV structure without regressing discovery request budget.

R8 model completion follow-up

Engine head 3e12fb9d84ae27ddbebb2389ed2eb58d0fde6d90 preserves case-distinct MMS/SCL member identity end-to-end and resolves exact case-distinct instance paths during canonical value projection. This closes the previously isolated LTRK CTS gap where standard tracking members t and T could collapse under case-insensitive indexing. The Smart Discovery wire route is unchanged; this is canonical model / SCL semantics only.

Copy link
Copy Markdown
Owner Author

R3 consumer hardening is now on test/smart-ied-discovery-pr134.

Current head includes:

  • 445d3c9: smart capture uses engine single-flight and ARSAS _mmsIoGate exclusion;
  • 7399811: engine pin moved to ARIEC61850 1b7cbbe8af3dfbc2a15086cb2c3e5eff02e006bb;
  • 1b375f5: field CI validates the R3 invariants;
  • c82cdbd: cancellation edge case fixed so the app MMS gate remains held until the shared directory flight itself has completed.

Engine CI is green. ARSAS Smart Discovery Field Capture Build run #15 (35124221168) has been triggered for the current head. PR remains draft/test-only and unmerged.

Copy link
Copy Markdown
Owner Author

R7 #68 was a real engine regression-test failure, now patched.

  • ARSAS tests: 1204/1204 PASS
  • ARSAS build: PASS
  • smart route proof: PASS
  • engine build: 0 warning / 0 error
  • engine tests: 966 PASS / 1 FAIL

The single failure was the new case-distinct LTRK t/T test. Exact engine repair: 3e12fb9d84ae27ddbebb2389ed2eb58d0fde6d90; exact ARSAS head: a89d6ef230951fde98f2b35e38dbc2dc84b6382f.

R7 #69 is the valid replacement candidate and is currently queued. #68 must not be used as a field artifact.

Copy link
Copy Markdown
Owner Author

R9 trusted-SCL reuse physical checkpoint recorded in the convergence contract.

Working path is now explicitly locked: Ed2/Ed1 32/32 domain match, all planned FC-root Reads successful, 2 static DataSets, 58 report-backed runtime points, 0 unavailable runtime points, full discovery skipped, and actual InformationReport traffic observed.

The same evidence keeps semantic convergence OPEN: 46 projection errors remain on both editions. Ed2 also showed 4250 projected vs 4239 cached leaves (11-loss signature). These are now machine-readable open gaps and cannot be silently reclassified as solved.

SCL-assisted diagnostics now emit projectionErrorSamples so the next field run identifies the exact roots/DO cardinality mismatch instead of only projectionErrors=46.

Exact ARSAS head: 7ccfa52de836c374c404a94e3c2f4d209c3d0c6e; exact engine pin: 5f15fecec2d6e97d985b1b41c9762e1b8c0a9c33. R7 #77 is the current validation run.

Copy link
Copy Markdown
Owner Author

Follow-up after CI #78:

  • ARSAS build PASS.
  • Smart Discovery route proof PASS.
  • ARSAS canonical regressions PASS: 1205/1205.
  • Engine tests exposed 5 stale CDC expectations (old INC/INS authority) after R9-aligned ENC/ENS correction; runtime code was not rolled back.

Those obsolete tests are updated on engine 45eab0fbc765a6aa3a1c7a3b72a0293b97eb3fb0, and ARSAS is repinned at f3b07a2aef647e62a8e110acd58f92baa5ed1f5d.
R7 #79 is the current exact-head validation candidate.

masarray commented Sep 18, 2026 •

Copy link
Copy Markdown
Owner Author

P0 structural discovery freeze implemented.

Exact ARSAS head: 05ddd943ca8c2fdfca396c4582c90d6ce5b03af8
Pinned engine remains: 45eab0fbc765a6aa3a1c7a3b72a0293b97eb3fb0

Locked source contract: P0-R9-STRUCTURAL.

The ARSAS Smart Discovery critical path is now source/CI-frozen to:

  • association-scoped single-flight ownership;
  • exclusive application MMS gate for the discovery owner;
  • DiscoverSmartSingleFlightAsync bounded directory discovery;
  • coverage-aware LN/root ProbeSmartAsync type probing;
  • MaxConcurrentChains=8 / unknown-peer fallback=4;
  • bounded report-attribute and DataSet-directory metadata enrichment;
  • no eager initial FC-root value snapshot;
  • no supplemental legacy browse / second full GetNameList sweep;
  • no recursive per-leaf GVA storm;
  • no engineering-unit/adaptive sibling/reflection scan in the critical path.

AA1E1F06R4 physical R9 acceptance is also machine-locked as evidence: 1 association, 323 confirmed MMS requests, 138 GetNameList, 119 GVA, 2 GetNamedVariableListAttributes, 64 Reads, producing 32 LD / 119 LN / 860 top DO / 906 DO+SDO / 4925 scalar leaves / 2 DataSets / 58 FCDA / 32 logical RCB / 1 SettingControl. external reference client 417 confirmed / 119 GVA / 156 Reads is retained as the comparison envelope, not as a request-count target to imitate.

The first P0 commit exposed one stale test-string expectation only; it was corrected without changing runtime behavior. Exact-head CI is currently queued behind older branch workflows.

Copy link
Copy Markdown
Owner Author

P1 integration is pinned.

ARSAS exact branch head: 0a9bb3463a9a2998f9bef6b76f89b2b9a172e7a7
Engine pin: fd807a4eb6d19235edae08a3eb3c4d2a826ff79b

Trusted-SCL diagnostics now expose initialTargets, fcRootTargets, doScopedTargets, projectionErrors and representative projection error samples.

P1 physical acceptance remains fail-closed until AA1E1F06R4 retest proves:

  • projectionErrors=0 for Ed2 and Ed1;
  • no projected→cache loss after the separate case-sensitive fix;
  • same accepted association;
  • no extra discovery GVA / no P0 wire regression.

R7 #83 and convergence guard #27 are the exact-head validation runs; currently queued.

Copy link
Copy Markdown
Owner Author

P2 integration implemented.

Exact ARSAS head: eb8eb13d491f9aa265205852b8a4bab07af440ff
Exact engine pin: 9935d6902d786cc69b299260fe36b835944d5e81

Root cause of the R9 Ed2 post-projection loss was explicit in ARSAS: _trustedSclInitialValues used StringComparer.OrdinalIgnoreCase. It now uses StringComparer.Ordinal, so legal case-distinct paths such as LTRK t and T cannot overwrite one another.

Trusted-SCL diagnostics now expose:

  • projectedUniqueValues
  • initialValueCache
  • cacheLoss

A nonzero cacheLoss makes the trusted-SCL reuse result semantically partial instead of silently successful. Machine contract P2-CASE-EXACT-VALUES locks the physical R9 evidence (4250 -> 4239, loss 11) and the next-field target (Ed2 loss 0, Ed1 loss 0).

Exact-head validation runs: R7 #84, convergence guard #28, Build ARSAS #3086, Golden Budget #179. They are currently queued behind older branch workflows.

@masarray
masarray marked this pull request as ready for review September 19, 2026 01:31
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@masarray
masarray merged commit 2b8e8ad into main Sep 19, 2026
23 of 25 checks passed
@masarray masarray changed the title convergence(discovery/scl): IEDScout-parity discovery and usable SCL convergence(discovery/scl): interoperable discovery and usable SCL Sep 19, 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