Repository navigation
P0 Command Dock: fence routine Refresh inspection by MMS + live model epoch - #756
Conversation
…ch and MMS association
D15 exact-head integration-ready candidate — routine Command Dock Refresh model-epoch guardStacked draft #756 exact commit FULL exact-head CI now VERIFIED: Windows build/app regression/pinned native CTest/managed packaged bridge/portable publish+smoke/seal run #40331840977 SUCCESS, SCL R7 canonical/engine/portable run #40331840419 SUCCESS, reference guard and P1 advisory SUCCESS. Exact tested portable EXE artifact #12654339747, only engineering candidate; D15 checkpoint. Owner integration gate: #756 MUST be reviewed and integrated in order with #755 by Control owner #615 / integrated RC owner #727, preserving #753 GOOSE and original #754 snapshot, frozen #726 Write/#716 Boolean, SG7 #688, IP #732, SMV, engine lock, stable v1.6.42 and protected RC. Do not merge stacked #756 separately into RC or mark #755 automatically done. #606 seven-case GOOSE/SGCB physical acceptance, Direct/SBOw timeout/reconnect IED checks, R7/R10 FAT still OPEN. |
|
D28 maintainer decision: archive superseded experimental safety candidate — CLOSED, NOT MERGED. The operator has accepted the newer working ARSAS evidence/baseline and explicitly does not authorize or plan another capture cycle for historical PR qualification. This draft was based on an older RC. Its unique code is NOT asserted to be present in the accepted RC; do not claim this safety fix is deployed or turn red safeguards green. Historical source commits, review and discussion remain accessible for engineering traceability. No cherry-pick, engine repin, release or new FAT is authorized by this archival action. |
D15 — P0 routine Command Dock Refresh inspection epoch/association fence (stacked, draft)
Exactly one commit:
098ec4abdf7ce8681ec97111f12f3f6151eade78above currently-green draft #755 HEAD7d235554225aa0341561b4e887a852fb6fd8e269(ahead1/behind0, two changed files only). This stacked PR targets #755's dedicated branch, NOT the protected release RC/main/stable. Source #753, #754, #755, frozen #726 Write/readback, #716 Boolean, SG7 #688, IP #732, SMV and trial engine pin untouched. There is no cherry-pick, merge or release.Root cause confirmed from exact #755 source
D13 guarded
ReinspectConfiguredControlAsync(post-Write) with both immutable MMS GUID anddevice.LiveValues.Associationmodel epoch, butMainWindow.xaml.cs:RefreshControlValuesAsyncroutine Command Dock refresh still called facadeInspectControlAsync(deviceId, signal, token)withoutstillCurrentPublicationTarget. Native response could arrive after same-socket live-model replacement or signal rebind; facade's existing MMS GUID/exact root check alone does not attest identity of the live UI model. A stale failure could also publish old fault text. The operation is read-only, but GUI ControlSemanticVerified/CDCs influence operator decision. No physical misoperate alleged.Implementation
GetControlAssociationId(deviceId)GUID anddevice.LiveValues.Associationbefore the first UI await; fail closed on no current MMS association.Iec61850ControlInspectionPublication.IsCurrentPostWriteTargetto check MMS GUID, live model epoch, connected state; require originaldevice.Signals.Contains(candidate)object identity as well. No extra subscription, native request, cache, queue, mutex or shadow ledger.Dispatcher.Yield, before dispatch, and pass() => IsCurrentRefreshTarget(signal)into existing UI facade (which already checks before native dispatch, before typed publication and before fault revocation). Recheck before UI feedback; stale exception cannot overwrite current evidence. Suppress stale batch projection/status after model or association replacement.Tests and gates
New deterministic
M217P0RefreshControlModelEpochTests: accepts exact association + model + signal object; rejects same-socket model epoch replacement, identical-reference foreign signal object, retired MMS GUID and disconnection; source seam asserts exact callback passed into facade, stale fault guard before UI mutation, and batch projection guarded. The existing #755 12 paths and tests remain untouched. This is not actual IEC relay Operate.Safety/release: keep OPEN DRAFT pending fresh exact-head Windows managed/native/portable CI and SCL R7, plus #615 Control owner and #727 RC owner review; #606 GOOSE/SGCB 7-case physical acceptance remains independent. A green CI does not authorize automated merge, live Operate or R7/R10 FAT. The branch is intentionally narrow so it may be integrated by the #755 owner without overwriting parallel work.