You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Restore Smart Dynamic RCB as the normal ARSAS monitoring path so every eligible exact-resolved residual leaves MMS polling and is acquired through static or Dynamic BRCB/URCB. MMS polling remains only for genuine unsupported/unmapped/degraded points, real RCB-capacity overflow, or a real activation failure that opens the dynamic-write circuit breaker.
ProductionEligible remains a separate certification boundary and is never promoted by this PR.
Runtime acquisition contract
Planning order is:
configured static report coverage first;
exact live MMS resolution for still-uncovered selected signals;
bounded 1..N Dynamic DataSet/RCB groups using deterministic per-RCB AR_HYB_<hash> identities;
MMS polling only for the genuine residual set.
For native P1.7, the generic MaxDynamicReportPlans=8 budget no longer strands otherwise eligible signals on polling. The native-only plan budget expands to the freshly checked association RCB inventory with an application hard ceiling of 64 plans. ARIEC still admits only exact verified-free RCB slots.
P1.7 field-stable per-IED bootstrap
A previously unseen IED is commissioned explicitly with Ctrl+Shift+B:
The bootstrap issues zero automatic process/control commands. At G2.5 ARMED the operator causes exactly one already-approved safe physical/status change affecting one listed proven member.
G2.3 field recovery rule
If a smaller milestone is fully cleanup-safe but a later larger DefineNamedVariableList destabilizes the association:
the failed exact LLN0.ARQ<8hex> residue is inspected on a fresh association;
delete is allowed only after exact ordered member readback matches the failed attempt;
discovery/directory exceptions never count as absence evidence;
after closure, ARSAS retains the largest prior IsQualificationSuccess multi-member envelope;
the later failed larger milestone is never generalized as safe;
if no prior clean multi-member envelope exists, the unchanged G2.3 ladder gets at most one fresh retry.
Retaining that envelope grants only EnvelopeQualified; G2.4/G2.5 remain mandatory.
P1.7 envelope-bounded normal runtime
Merged ARIEC PR #110 adds an envelope-bounded native runtime wrapper.
The physical dchg witness proves the Dynamic RCB mechanism for fresh exact-resolved members; it is not a permanent commissioning-member whitelist. However each individual runtime Dynamic DataSet is capped to:
Therefore a relay that physically survives 4 members but destabilizes at 8 will be covered by multiple <=4-member Dynamic RCB groups instead of being asked to create an unsafe larger list.
Example when safe envelope=4 and enough free RCBs exist:
If only 31 verified-free RCBs exist, at most 124 of those 132 can be Dynamic at that 4-member envelope; the remaining 8 are genuine current-association capacity residual, not an artificial planner fallback.
Two-part durable native authorization
A native DataChange profile alone is insufficient. Normal P1.7 runtime also requires a separate sidecar bound to the exact:
stable IED identity;
model fingerprint;
profile revision;
RCB and temporary DataSet;
activation/report evidence IDs;
included-member mapping;
actual NO-GI dchg reason;
association health;
monitor cleanup;
proof-field restore;
fresh-association cleanup closure.
Any mismatch fails closed.
Safety retained
static reporting precedence;
exact live MMS member resolution;
fresh current-association RCB availability before every write;
per-group size bounded by the physical G2.3 envelope for native P1.7;
native total plan count bounded by fresh RCB inventory and hard application ceiling;
deterministic per-RCB AR_HYB_<hash> identity;
isolated execution-time revalidation before mutation;
process-lifetime dynamic-write circuit breaker after a real activation failure;
cleanup/reconnect/revalidation;
no capability authorization from advertised MMS services alone;
no MarkProductionEligible call.
ARIEC engine
Current lock pins merged ARIEC:
main @ 9b60458ed910a410b843185384f0e04d3ca78ce0
source PR #110
masarray
changed the title
G2.6 Smart Dynamic RCB: guarded normal runtime with general field-capability coverage
G2.6/G2.7 Smart Dynamic RCB: general field capability + native per-IED bootstrap
Sep 2, 2026
All four required workflows are green on 96a0ccdd...:
Build ARSAS #1610 — SUCCESS
immutable ARIEC lock/API verification PASS
solution restore/build PASS
ARSAS regression tests PASS
portable publish PASS
portable smoke test PASS
Validate ARSAS Windows installer #484 — SUCCESS
restore/build/test PASS
installer compile PASS
silent install/uninstall smoke PASS
Validate IO List Testing #553 — SUCCESS
Validate SV evidence bundles #719 — SUCCESS
The two commits after previously-green 0fffd4ae... are a TDD diagnostics probe plus its revert; compare 0fffd4ae...96a0ccdd has zero changed files, so the qualified source tree is unchanged while the current exact head is independently green.
bootstrap remains explicit Ctrl+Shift+B and zero automatic process/control commands;
G2.4 advances its profile only after actual InformationReport proof plus complete monitor/proof-field cleanup;
G2.5 native persistence requires actual NO-GI dchg, exact included-member mapping, association health, monitor cleanup, proof-field restore, and fresh-association cleanup closure;
native runtime requires both the exact InformationReportProven/DataChange profile and a separate sidecar bound to identity/fingerprint/profile revision/RCB/DataSet/activation evidence ID/report evidence ID;
advertised capability or a DataChange profile alone cannot unlock general Dynamic RCB;
ProductionEligible remains independent/OFF;
static precedence, fresh live member resolution, fresh verified-free RCB availability, bounded groups, deterministic AR_HYB_<hash>, execution revalidation, dynamic-write circuit breaker and MMS residual fallback remain intact.
Run only this sequence on the exact qualified build:
Open SCL -> Connect AA1E1F03R3 -> Ctrl+Shift+B -> wait for G2.5 READY -> cause exactly one approved safe physical/status change on a proven member -> bootstrap PASS -> Disconnect -> Connect -> Start Monitor
Then capture diagnostics proving:
native P1.7 candidate accepted;
Dynamic groups > 0 / dynamic signals > 0;
per-group RCB + stable AR_HYB_<hash> DataSet + member count;
successful activation / RptEna / monitor active;
spontaneous dchg updates;
MMS fallback only genuine residual/degraded points;
clean disconnect/reconnect revalidation and re-arm without a repeated mutation loop.
PR #230 remains OPEN + DRAFT + UNMERGED. Do not mark ProductionEligible or merge until the physical bootstrap + all-signal normal-runtime + reconnect evidence is reviewed.
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
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
Restore Smart Dynamic RCB as the normal ARSAS monitoring path so every eligible exact-resolved residual leaves MMS polling and is acquired through static or Dynamic BRCB/URCB. MMS polling remains only for genuine unsupported/unmapped/degraded points, real RCB-capacity overflow, or a real activation failure that opens the dynamic-write circuit breaker.
ProductionEligibleremains a separate certification boundary and is never promoted by this PR.Runtime acquisition contract
Planning order is:
AR_HYB_<hash>identities;For native P1.7, the generic
MaxDynamicReportPlans=8budget no longer strands otherwise eligible signals on polling. The native-only plan budget expands to the freshly checked association RCB inventory with an application hard ceiling of 64 plans. ARIEC still admits only exact verified-free RCB slots.P1.7 field-stable per-IED bootstrap
A previously unseen IED is commissioned explicitly with
Ctrl+Shift+B:The bootstrap issues zero automatic process/control commands. At G2.5 ARMED the operator causes exactly one already-approved safe physical/status change affecting one listed proven member.
G2.3 field recovery rule
If a smaller milestone is fully cleanup-safe but a later larger
DefineNamedVariableListdestabilizes the association:LLN0.ARQ<8hex>residue is inspected on a fresh association;IsQualificationSuccessmulti-member envelope;Retaining that envelope grants only
EnvelopeQualified; G2.4/G2.5 remain mandatory.P1.7 envelope-bounded normal runtime
Merged ARIEC PR #110 adds an envelope-bounded native runtime wrapper.
The physical dchg witness proves the Dynamic RCB mechanism for fresh exact-resolved members; it is not a permanent commissioning-member whitelist. However each individual runtime Dynamic DataSet is capped to:
Therefore a relay that physically survives 4 members but destabilizes at 8 will be covered by multiple <=4-member Dynamic RCB groups instead of being asked to create an unsafe larger list.
Example when safe envelope=4 and enough free RCBs exist:
If only 31 verified-free RCBs exist, at most 124 of those 132 can be Dynamic at that 4-member envelope; the remaining 8 are genuine current-association capacity residual, not an artificial planner fallback.
Two-part durable native authorization
A native DataChange profile alone is insufficient. Normal P1.7 runtime also requires a separate sidecar bound to the exact:
Any mismatch fails closed.
Safety retained
AR_HYB_<hash>identity;MarkProductionEligiblecall.ARIEC engine
Current lock pins merged ARIEC:
Relevant lineage:
AR_HYB_<SHA256-prefix>identity;ProvenSafeMemberCountwhile retaining multi-group general coverage.Current physical gate — AA1E1F06R4
Observed field baseline before this recovery slice:
Ctrl+Shift+Breached G2.3 and correctly failed closed when association continuity/cleanup was not proven. No profile was advanced.Next physical sequence
Acceptance evidence
After reconnect/start monitor:
Dynamic groups=Nreflects however many bounded groups are necessary, not an artificial 8-plan ceiling;members <= ProvenSafeMemberCount;AR_HYB_<hash>DataSet;RptEna/ report monitoring activates successfully;Keep PR #230 DRAFT + UNMERGED until this physical bootstrap + full eligible residual runtime + reconnect evidence is reviewed cleanly.