fix: enforce pinned ARIEC engine for static DataSet selection - #185
Merged
Merged
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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.
Field evidence
A real Siemens CID run on ARSAS
1d06cf3849fcec81eef86444f6a40a4ecc83294cstill reported5/58static DataSet members represented. The same diagnostic proved the application was loading engine4fc3119be2bb97e0ea3a8d31fb990e6a1a089e60, even though ARSAS main pins761fa0df9ca84fbe15352d2670f03fddbe8784bafrom ARIEC PR #78.The field report also showed the first-run
SingleOrDefault()exception still occurs, and source audit found Signal Selection's constructor still rewrote every existingDisplayReferencefrom the runtimeObjectReference.Root causes
../ARIEC61850project path. The lock JSON was copied to output but never enforced by MSBuild. CI checks out the exact lock SHA, so CI was green while a local build could silently compile an older engine. This explains the old descriptor-centric68 semantic descriptorsresult.Border; the P2 visual tint is also aBorder, so decoration could triggerSequence contains more than one element.Changes
engines/ARIEC61850.lock.jsonSignalDefinition.DisplayReferencein the Signal Selection constructor; runtimeObjectReferenceis now only a fallback when no display identity existsBorderby content contract while explicitly ignoringP2IndustrialHeroTint, eliminatingSingleOrDefault()from that pathExpected field gate
A valid build of this ARSAS revision must report engine
1.0.0+761fa0df9ca84fbe15352d2670f03fddbe8784ba(or the exact SHA subsequently reviewed into the lock). A stale engine checkout must fail the build instead of producing a misleading executable.For the Siemens CID used in field validation the target remains: 2 DataSets, 58 static members, Analog 22/22, Digital 36/36, 58/58 represented, 0 missing, and no startup
Sequence contains more than one elementdiagnostic.