Skip to content

P7 #446: consume engine canonical static acquisition for Discovery/Open SCL - #454

Draft
masarray wants to merge 21 commits into
fix/scl-smart-association-424from
feat/446-unified-static-acquisition-consumer
Draft

masarray wants to merge 21 commits into
fix/scl-smart-association-424from
feat/446-unified-static-acquisition-consumer

Conversation

@masarray

@masarray masarray commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Stacked consumer milestone for #446, based on active PR #425 to preserve parallel ownership.

Goal

Make ARSAS a thin consumer of the CodeVerified ARIEC61850 smart interoperability stack instead of maintaining a second IEC 61850 static-reporting planner.

Engine trial authority

This stacked branch pins the exact ARIEC integration head:

9c5292570f55dd81be1b3a6b56f937e5ba1ed276

which passed ARIEC .NET CI #759 for P0-P6.1.

This pin is explicitly CodeVerified, not PhysicalVerified, and not a production promotion. Historical physical baselines remain preserved in the lock file.

Consumer changes

  • add one source-neutral canonical runtime-model boundary in ARSAS;
  • Open SCL imports/stores the engine CanonicalIedModel;
  • Discovery lazily projects the live discovery model into the same canonical contract;
  • replace ARSAS BuildTrustedSclReportInventory and indexed Rpt01 fabrication with engine MmsCanonicalReportInventoryProjection;
  • Static DataSet planning now calls engine PrepareCanonicalStaticAcquisitionSmartAsync:
    • local canonical static coverage;
    • targeted live RCB reconciliation;
    • exact live RCB resolution;
    • exact-target JIT availability;
  • engine MmsConfiguredStaticRcbEligibilityPolicy owns reduced-vs-blocked static RCB eligibility;
  • canonical/live ordered DataSet membership is still verified before positional report projection;
  • Static DataSet activation now uses engine StartConfiguredStaticReportMonitorAsync directly;
  • no second broad EnsureDiscoveryForReportingAsync call before activation;
  • traffic remains asynchronous post-activation proof.

Performance/safety boundaries

  • no full report discovery in the Static DataSet hot path;
  • no application-side RCB indexed sibling fabrication;
  • no vendor branching;
  • no fixed delay;
  • no cyclic MMS process polling substitution for static segments;
  • no dynamic DataSet mutation in this path;
  • live RCB/ownership/reservation state stays JIT engine evidence.

Teamwork

This PR intentionally targets fix/scl-smart-association-424, not main. PR #425 retains ownership of the Open-SCL smart association lane. Packaging/Field Capture work remains untouched.

Qualification

Software CI is required next. A green build will mean application integration is CodeVerified only. Physical 7SX85 validation is still required before any production/main engine promotion.

Trial vs physical authority gate

The branch intentionally keeps the P0-P6.1 engine as an explicit code-verified-not-physical trial while preserving the physically accepted SCL-association ancestry in the lock.

CI now distinguishes those two authorities:

  • stacked PRs may compile/test against the exact CodeVerified trial;
  • historical physical R10/SCL-association evidence must remain unchanged;
  • retargeting this trial directly to main fails closed until fresh physical qualification is recorded.

Regression tests lock this behavior so a future cleanup cannot silently turn a CodeVerified engine into production authority.

This branch has not been deployed

No deployments
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