Skip to content

Staging: integrate Global MMS Write + contextual Browser Control without regressions - #693

Merged
masarray merged 71 commits into
fix/fat-integrated-quality-attention-20261022from
staging/global-mms-write-browser-control-20261023
Oct 23, 2026
Merged

masarray merged 71 commits into
fix/fat-integrated-quality-attention-20261022from
staging/global-mms-write-browser-control-20261023

Conversation

@masarray

@masarray masarray commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

ARSAS staging integration — current tracked source

STAGING ONLY; no main release, no physical Operate/Write acceptance.

Source: staging/global-mms-write-browser-control-20261023
Current staged HEAD: f509d049c39be3a82a76bc0b6ba51fb0db356ff7.
Target: FAT integration fix/fat-integrated-quality-attention-20261022 (PR #679).

Already integrated into staging (NOT just a handoff)

  • PR Sync latest CI-green FAT Smart IP/startup fixes into MMS staging #694 MERGED: 13 newly CI-green FAT/Smart IP/startup fixes up to fe317a15e233e57d301b00ccf08a637b87f80e13 before typed Write feature integration; ancestry verified.
  • PR WIP: live-schema guarded Global MMS data-write core and sequential DA batches #690 MERGED: typed single-DA MMS Write via same native session/association with GVA, exact pre-read, explicit confirm, confirmed response, exact readback and no retry; sequential same-DO batch core maximum 64.
  • New BrowserBatchWriteWindow: compact scrolled per-DA table with explicit selection, edit tracking, read-only preview, old/new typed admission, confirmation and per-row partial/unknown/unattempted outcomes. DO selection routes here; exact DA selection retains compact one-DA dialog.
  • Browser Control action remains separate, based on existing typed live CO/ctlModel/CDC evidence and reused ControlCommandWindow. New guard revokes parent Write and Control action when a status/leaf DA gains focus.
  • New regression tests IedBrowserBatchWriteEditorTests plus previous typed MMS/type/FC negative tests.
  • PR WIP: live-schema guarded Global MMS data-write core and sequential DA batches #690 source 5a4a0109079bc5f1dae1e5e8fcf82b95bddcc1e6: Build ARSAS / R7 / SV evidence / P1 / reference guard SUCCESS including portable smoke. The combined exact staging SHA f509d049c39be3a82a76bc0b6ba51fb0db356ff7 has its own CI; do NOT inherit those results for the combined merge.

Must retain

  • Compact styled SMV Measurements/phasor/waveform, correct live SCL-verified IEDName, stable Command Dock ordering, scroll and fixed Open/Close geometry, last exact ST/SE model read, Smart IP/startup fixes and existing reporting/RCB/GOOSE/COMTRADE/native bridge.
  • Production engine lock 9c7cb40364023a7b217e5ec31ab3105ba90142eb unchanged.
  • No generic CO Write, no StatusOnly Operate, no unconfirmed Select/Operate, no silent retry, no physical feedback claim.

Remaining before FAT integration / review readiness

Prior old PRs closed only after ancestry proof: #650, #652, #661, #662, #664, #665, #668, #669, #670.

2026-10-23 Control popup continuation checkpoint

  • FAT catch-up PR Sync newest FAT Smart IP fixes into Global MMS/Control staging #699 merged into staging at ab22f1d46b887cddb38e579bd28cce4ad7e2ef4b; current FAT SHA 3b1b257db1ef0fb5b65a072397b4be1c4fac5a20 is an exact ancestor (behind=0). Smart IP/latest visual fixes preserved.
  • Exact staged HEAD: fa7d940af5ecee5de45ffd5ef21c4a4dc1c5c083.
  • Introduced pure Iec61850ControlOutcomePresentation separating NotSent, IED rejection, negative CommandTermination, accepted-without-feedback, verified process feedback and ambiguous outcome; corresponding data-driven regressions.
  • WPF Control popup: no default Open/Close selection, each explicit dispatch consumes confirmation; Reinspect performs fresh read-only ctlModel/status inspection before any second attempt. Parameter edits remain blocked during a wire flight. No blind retry, no fake Select/Cancel button, no change to native engine or approved pin.
  • Added evidence-only wire timeline (actual SBOw/Select/Operate/CommandTermination stages, no invented physical feedback) and further negative tests. Final Windows Build/R7/SV/ref-guard CI is queued for exact staged HEAD. No FAT/real equipment claim or merge to main.

…nical 3771-line source plus guarded Write/preview

masarray commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner Author

Control popup UX staging checkpoint · 2026-10-23

Current source SHA: a7b6eee03f877f05bb5cf46d01a3f8b093187ded on staging/global-mms-write-browser-control-20261023.

Implemented: compact 565×500 WPF ARSAS Inter-themed window; IED/object/current value and short live ctlModel; CDC command entry, interlock/synchro/Test; live authorization even with Test=true; SBO-based dynamic native one-shot Select → Operate vs Direct Operate; second explicit confirmation; bounded scroll with fixed result/buttons; advanced origin category + printable 1–64 byte ID + native result ctlNum + CommandTermination + full wire/LastApplError. Input frozen during native command; close prevented during active wire flight, inspection can close; unknown/timeout reports unresolved rather than fake rejection. main and approved production engine pin unchanged.

Source/tests: ControlCommandWindow.xaml, ControlCommandWindow.xaml.cs, new ControlPopupCompactUxTests.cs, adapted G1 origin regression and P0 not-sent versus unresolved test. Initial combined staging Windows R7 source at prior SHA compiled and ran 2737/2738 PASS; remaining single failure was a brittle textual test still expecting Command failed after safer result became Outcome unresolved. Fixed at a7b6eee. Exact final SHA CI now required; do not inherit prior run results.

Open acceptance: do not expose separate fake Select/Cancel buttons. Native staged Select / Cancel lease-aware protocol requires a distinct association-bound API, control number ownership and test matrix. Current one-shot native SBO/SBOw → Operate is actual engine behavior. DPI 100/125/150 and original relay FAT need visual/physical testing. No manual command sent to actual IED by this PR.

Copy link
Copy Markdown
Owner Author

Cross-thread CI finding from Smart IP PR #696 integration: the exact merged-source Windows test run https://github.com/masarray/arsas/actions/runs/39912106528 compiled cleanly and passed 2738/2739 app tests, but the one failure was ARSAS.Tests.P0CommandStopRaceAdmissionTests.QuickCommandDock_ClassifiesLocalBusyBeforeGenericFailure, asserting that ControlCommandWindow.xaml.cs contain CommandStage = "Command failed" after CommandStage = "Command not sent". Latest staging Control popup now uses the safer statuses "Outcome uncertain" and "Outcome unresolved", so the old assertion no longer matches the actual code; this is unrelated to Smart IP (PR #696 only 5 IP/visual-test paths, zero Control code). Please reconcile the control test with exact local-not-sent vs dispatched-but-uncertain/unknown outcomes, without deleting or skipping it, in your Control popup thread. Once staging baseline is green, #696 can merge without reverting any newer Control/Write progress.

Copy link
Copy Markdown
Owner Author

Cross-thread integration heads-up (2026-10-23): SSOT v2 reactive Browser performance is isolated in draft #698 stacked on #695. Reviewed your then-HEAD a7b6eee03f877f05bb5cf46d01a3f8b093187ded: the Control/Write changes RefreshIedBrowserReadButtons, whereas #698 only hooks RefreshIedBrowserVisibleValues, ReplaceIedBrowserDetails, and ToggleIedBrowserDetails plus two new partial/model files. Method-level overlap none at this checkpoint. #698 deliberately does NOT touch Global MMS Write / Browser typed write / context control / native engine. Please preserve #698's three narrow viewport hooks when later integrating the staging branches; re-check HEAD/CI before merge. Nothing is merged to your branch by this comment.

Copy link
Copy Markdown
Owner Author

Integrator visibility: accepted Smart IP is already exactly present in staging

The staged HEAD fa7d940af5ecee5de45ffd5ef21c4a4dc1c5c083 has all FIVE approved final #697 Smart IP+test blob SHAs identical to FAT #679 HEAD 3b1b257d... (verified against GitHub), so no cherry-pick and no staged code mutation is needed. Retain those exact files when building Global MMS Write/Browser Control. SSOT perf PRs #695/#698 were still based on prior form, hence separate UI-only #700/#701 rather than touching your Write/Control work. The user confirms the approved form visually; performance remains independently under investigation. CAUTION: alternate staged form #696 has a different XAML file and is not the user-approved source.

@masarray
masarray marked this pull request as ready for review October 23, 2026 08:27
@masarray
masarray merged commit c19dd45 into fix/fat-integrated-quality-attention-20261022 Oct 23, 2026
22 checks passed

Copy link
Copy Markdown
Owner Author

Coordination checkpoint for global MMS Command/Write team (2026-10-23). New draft performance PR #703 perf/ssot-v2-realized-viewport-priority-20261023 is stacked on #698/#695; it modifies ONLY MainWindow.xaml.cs (point UI flush and constructor hooks), MainWindow.IecNaturalSort.cs (DataGrid Loaded hooks), one new MainWindow partial, one new viewport-identity model and two regression tests. Verified your #693 merged control head fa7d940a has identical blobs to its parent for the two existing files we edit, so THIS stage has no direct file overlap with your MMS Write/Command changes. No edits to your Control popup, Browser write admission, command runtime, native clients or engine lock. Please preserve both histories in any integration, re-check HEADs and run exact-merge-SHA Windows CI; #703 does NOT merge staging or claim control FAT approval.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant