G2.6: add typed dynamic report shadow verification evidence - #98
Merged
Conversation
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.
Goal
Add the typed, fail-closed G2.6 shadow-verification layer between
InformationReportProvenand any laterProductionEligibledecision.The engine remains pure/evidence-driven: no network I/O, no RCB/DataSet mutation, no profile mutation, and no automatic production enablement are introduced by this PR.
Shadow contract
dynamic InformationReport candidate -> independent MMS reference read -> exact identity/value/quality/timestamp/order/reconnect comparison -> typed acceptance evidenceThe evaluator requires exact qualified DataSet index/member identity and checks:
(sequence, DataSet index)report observations;Multiple included DataSet indexes from the same InformationReport may correctly share one sequence number. Sequence regression is rejected; exact same-sequence/same-index duplication is rejected separately.
Production boundary
BuildProductionAcceptance(...)may convert only a successful typed shadow into the existingMmsDynamicReportProductionAcceptancecontract. Smart Control and static-reporting regressions remain explicit independent inputs.This helper does not call
MarkProductionEligible. Production automatic dynamic reporting remains OFF until a consumer separately proves every gate and explicitly advances an identity-compatible profile.Tests
Adds deterministic regressions for:
Keep draft until exact-head CI is green. After merge, ARSAS will pin the merged engine SHA and add the physical commissioning collector. No
ProductionEligibleclaim is made by this PR.