Repository navigation
Conversation
This branch has not been deployed
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Stacked milestone for #144, based on PR #147.
Goal
Move the next orchestration boundary into ARIEC61850 so ARSAS does not have to reproduce IEC 61850 static-coverage -> live-RCB targeting -> availability semantics.
The engine must know the difference between:
A design/SCL inventory must never be silently promoted to live operational RCB evidence.
Changes
MmsReportInventoryself-describing with explicitMmsReportInventoryAuthority:LiveMmsObservedSclDesignProjectionUnknown;LiveMmsObservedat the mapper boundary rather than relying on a caller-supplied authority flag;MmsCanonicalStaticAcquisitionPreflightPlanner;PrepareCanonicalStaticAcquisitionAsyncso planning and execution consume the same inventory instance;ProbeCanonicalStaticAcquisitionAsyncfor explicit plan/execute separation, with an execution-time authority recheck so an SCL inventory cannot be swapped in after planning;Canonical structural projection
MmsCanonicalReportInventoryProjection.Build(CanonicalIedModel)so applications do not recreate DataSet/RCB projection logic;01/indexed RCB instance is fabricated;RptEna, reservation, Owner or other live state is invented;SclDesignProjection; discovery-derived canonical snapshots are taggedCanonicalModelProjection, not live runtime authority.This directly prepares removal of ARSAS-side
BuildTrustedSclReportInventory/indexed-name fabrication once the engine pin can be coordinated.Anti-naive boundary
This closes a subtle Open-SCL trap: an application can synthesize an RCB inventory from SCL for structural planning, but that inventory is not live evidence. The new contract prevents a consumer from accidentally calling it operational truth.
No vendor branching, broad fallback, indexed-name fabrication, or UI-level IEC semantics are introduced.
Tests
Consumer direction
ARSAS #446 should consume this contract later:
No ARSAS engine-lock or active #425/#445/#450 files are changed in this milestone.
Software gate
Combined P0-P6 integration head
51fa7092e83472a125aae9a29f033d31f59e6281passed .NET CI #758 end-to-end in CI-only PR #148:CI #754 first caught a test-only canonical evidence enum-name typo; it was corrected before the green exact-head gate. No runtime workaround was introduced.